반응형
Ambari Architecture
Ambari는 다음과 같은 요소로 이뤄져 있다.
- Ambari Server : 각 Agent 상태 확인 및 API를 활용 명령 전달, 상태 확인
- Ambari Agent : Agent가 설치된 서버 상태, 리소스 정보, 명령 수행 결과를 Server 전송
- Postgresql(DB) : 각 상태값 및 Agent 명령 수행 결과 저장, 로그 저장
- Ambari-web : 사용자가 확인하는 접속 UI 화면
ambari는 ambari agent와 ambari server 두개의 컴포넌트를 가지고 있다.
agent는 agent interface를 통해서 heartbeats를 주고 받으며 server와 통신한다.
Ambari 설치와 내부 진행 과정
https://www.slideshare.net/hortonworks/ambari-agentregistrationflow-17041261
*용어정의
- Bootstrap : 호스트에 Agent를 설치하고 등록하기 위한 환경 조성 과정
- Registration : Agent 호스트가 서버에 등록하는 행위
과정
- Ambari-Server 설치
- Ambari-Agent 설치
- Ambari-Agent는 Ambari-Server 설치 시 같이 설치 되지 않습니다.
- Ambari-Web 에서 ex)HDP 를 설치할 때 bootstrap.py 를 실행
- 설치 과정 중 Web 상에서 입력했던 HDP 내 설치할 대상(hostname혹은 ip)에 Ambari-Agent 설치
- 관련 추론 근거 error URL
- (https://community.cloudera.com/t5/Support-Questions/Ambari-fails-to-register-with-nodes/td-p/100863)
- bootstrap.py 코드 안 Bootstrap 클래스 주석내용을 확인하면 분산된 호스트에 Agent를 설치한다 적여있습니다.
- Ambari-Server에 Ambari-Agent 등록
1. 설치설치 방법 1 ( SSH가 될 때 )
- Ambari Server를 설치할 host와 Agent를 설치할 대상 서버간 SSH Key를 사용하여 접속 할 수 있도록 한 후 설치 진행
Ambari Agent Bootstrap (SSH)
- Ambari-Server : Ambari Repo 설정
- 암바리 서버의 ambari.repo 파일을 Ambari-Server 설치 서버에 저장.
- Ambari-Server : setupAgent.py 스크립트를 Ambari-Server 설치 서버에 준비.
- Ambari-Server : 준비된 설치 파일을 python setupAgent.py 를 실행하여 설치 실행.
- Ambari-Agent : 리눅스 확장 패키지 설치(epel-release package)
- zypper를 활용해 저장소를 관리하며
- yum install epel-release 를 수행
- zypper를 활용해 저장소를 관리하며
- Ambari-Agent : Ambari-agent 설치
- Ambari-Agent : 관련 설치 정보 설정 변경
- /etc/ambari-agent/ambari-agent.ini Ambari-Agent 호스트이름과 Ambari-Server 호스트이름 변경 저장
- Ambari-Agent : Ambari-Agent 시작
- Ambari-Agent : Ambari-Server에 Ambari-Agent 정보 등록 프로세스 시작
설치 방법 2 (SSH 불가 시)
- 각 서버에 직접 접속하여 Agent 설치
Ambari Agent Bootstrap (Manual)
- Ambari-Agent : Ambari Repo 설정
- 암바리 서버의 ambari.repo 파일을 Ambari-Server 설치 서버에 저장.
- Ambari-Agent : 리눅스 확장 패키지 설치(epel-release package)
- zypper를 활용해 저장소를 관리하며
- yum install epel-release 를 수행
- zypper를 활용해 저장소를 관리하며
- Ambari-Agent : Ambari-agent 설치
- Ambari-Agent : 관련 설치 정보 설정 변경
- /etc/ambari-agent/ambari-agent.ini Ambari-Agent 호스트이름과 Ambari-Server 호스트이름 변경 저장
- Ambari-Agent : Ambari-Agent 시작
- Ambari-Agent : Ambari-Server에 Ambari-Agent 정보 등록 프로세스 시작
2. Ambari-Agent 등록
Ambari-Agent를 Ambari-Server에 등록하는 과정은 Agent와 Server 간 통신을 통해서 이뤄집니다.
- Ambari-Agent : 8441 Handshake 포트를 통해서 Ambari-Server에 접속
- Ambari-Server : Ambari-Server에서 Ambari-Agent로 Server Cert(증명서) 전송
- Ambari-Agent : Ambari-Server에 Agent Cert(증명서) 요청
- Ambari-Server : 요청이 들어온 Agent Cert(증명서)를 password와 함께 서버 내 등록
- Ambari-Server : 등록한 Agent Cert(증명서)를 Ambari-Agent로 전송 및 연결 종료
- Ambari-Agent : Ambari-Server의 Agent 등록 포트인 8440 접속
- Ambari-Agent : 2WAY 인증 방법으로 Ambari-Agent와 Ambari-Server 간 인증
- Ambari-Agent : Ambari-Agent는 *FQDN(Fully Qualified Domain Name)을 통해 Agent 호스트를 얻습니다. (*FQDN이란 www.yahoo.com 과 같이 <호스트명.도메인명>으로 표기하는 것을 말한다.)
- 동일한 IP 내 hostnames 가 여러개일 경우
- 스크립트를 만들어 배포 설정 파일에 추가 (스크립트 이름은 무엇이든 상관 없습니다.)
- ex) /tmp/hostname.sh 생성
- ex) /tmp/hostname.sh 생성
- 스크립트를 만들어 배포 설정 파일에 추가 (스크립트 이름은 무엇이든 상관 없습니다.)
- 동일한 IP 내 hostnames 가 여러개일 경우
-
-
-
-
- 1#!/bin/sh 2echo <ambari_hostname>
- 설정 파일 내 내용 추가 ( /etc/ambari-agent/conf/ambari-agent.ini )
- [server] 내용 중
- Ambari-Server 호스트 네임으로 설정
- [agent] 아래에 한줄 추가
- [server] 내용 중
-
-
-
-
-
-
-
-
- 1hostname_script=/tmp/hostname.sh
-
-
-
-
- Ambari-Agent : FQDN을 활용하여 Ambari-Agent는 Ambari-Server에 Agent 호스트를 등록
- Ambari-Server : Ambari-Server는 Ambari가 사용하는 DB에 추가하면서 등록을 완료
- Ambari-Agent : 등록이 완료된 이후에야 Ambari-Agent는 heartbeat 시작
- hearbeats를 통해서 Ambari-Server에 지속적으로 명령 수행을 상태를 알립니다.
반응형
'Bigdata > Ambari' 카테고리의 다른 글
centos7 환경에서 Apache Ambari 2.7.5 버전 설치하기 (0) | 2023.02.23 |
---|