* 클라이언트 : 얀으로 실행할 잡을 summit 하는 프로그램
* 잡 : 하나이상의 태스크를 포함하는 애플리케이션
* 태스크 : 맵퍼와 리듀스가 수행한 작업들
* 맵퍼와 리듀스는 각 컨테이너 내에서 동작
YARN(Yet Another Resource Negotiator) 서비스
: HDFS처럼 마스터 노드와 워커 노드 양쪽에서 모두 동작하는 서비스
리소스 관리와 작업 스케줄링을 담당하는 프레임워크
- 컨테이너 (Container): 컨테이너는 어플리케이션의 실행 환경을 캡슐화하는 단위입니다. 컨테이너는 작업 실행에 필요한 리소스(메모리, CPU 등)를 가지고 있으며, 노드매니저에 의해 제어됩니다. 각 앱마스터는 리소스매니저로부터 할당받은 컨테이너를 이용하여 작업을 실행합니다.
- 리소스매니저 (Resource Manager): 리소스매니저는 얀 클러스터의 전체 리소스를 관리하고 할당하는 역할을 합니다. 클러스터의 리소스 상태를 추적하고, 사용 가능한 리소스를 애플리케이션에 할당하여 작업을 실행하도록 조정합니다. 리소스매니저는 얀 클러스터의 중앙 집중식 제어 타워 역할을 수행합니다.
- 스케줄러 : 시스템 리소스 한계와 큐의 크기에 따라 실행 중인 애플리케이션에 리소스를 할당
- 애플리케이션 매니저 : 클라이언트가 요청한 job request를 받아서 새로운 appMaster를 실행하기 위한 첫 번째 컨테이너를 실행함
- 노드매니저 (Node Manager): 노드매니저는 각각의 워커 노드에서 실행되며, 해당 노드의 리소스를 관리합니다. 노드매니저는 리소스매니저와 통신하여 할당된 작업들을 실행하고 상태를 보고합니다. 또한 노드매니저는 자원 사용량, 로그 수집, 장애 탐지 등의 역할을 수행합니다.
- 앱마스터 (Application Master): 앱마스터는 각각의 얀 애플리케이션에 대해 실행되는 작업 스케줄러와 리소스 관리자입니다. 앱마스터는 애플리케이션의 요구 리소스를 리소스매니저에게 요청하고, 할당받은 리소스를 노드매니저에게 할당하여 작업을 실행합니다. 각 애플리케이션은 자체 앱마스터를 가지며, 다른 애플리케이션의 앱마스터와 격리되어 실행됩니다.
- 리소스매니저나 노드매니저와 다르게 각각의 애플리케이션에 할당되며 애플리케이션이 요구하는 리소스를 제공
- App가 하둡시스템에 올라가면 하나의 특정 노드에 해당 app에 대한 app Master를 올리도록 되어 있음
- 리소스 매니저의 애플리케이션 매니저가 해당 역할
- ex) hive App Master의 기능
- 쿼리 실행 및 최적화
- 모니터링 및 로깅
- 보안 및 권한 관리
- 메타데이터 관리
- 잡 히스토리 서버 (job history server) :YARN(Yet Another Resource Negotiator)에서 실행된 작업의 히스토리 정보를 제공하는 역할을 합니다. 이 서버는 작업 실행에 대한 로그, 상태, 진행률 및 통계 정보 등을 저장하고 관리
Yarn 기반 클러스터에서 app가 실행 되는 과정
- app 제출: 클라이언트가 YARN 클러스터(리소스 매니저)에 애플리케이션을 제출
- App Master 할당: 클러스터의 리소스 매니저는 애플리케이션에 대한 리소스를 할당하기 위해 App Master를 실행할 노드를 선택 (애플리케이션 매니저)
- 컨테이너 할당:
- 애플리케이션 마스터는 리소스 매니저로부터 컨테이너 할당 요청
- 컨테이너는 클러스터의 노드에서 작업을 실행하기 위한 실행 환경을 제공
- 리소스 매니저는 애플리케이션의 요구사항에 맞게 컨테이너를 할당하고
- App마스터가 해당 노드의 노드매니저를 통해서 컨테이너를 실행
- 작업 실행:
- 할당된 컨테이너에서 애플리케이션의 작업이 실행
- 작업은 주로 맵, 리듀스, 태스크 등의 단위로 구성
- 각 작업은 컨테이너 내에서 독립적으로 실행되며, 입력 데이터를 처리하고 중간 결과를 생성
- 작업 상태 및 진행 모니터링:
- 애플리케이션 마스터는 작업의 상태와 진행 상황을 모니터링
- 작업이 시작되면 애플리케이션 마스터는 작업의 진행 상태를 주기적으로 업데이트
- 작업이 완료되면 결과를 수집
- 작업 완료 및 결과 수집: 모든 작업이 완료되면 애플리케이션 마스터는 결과를 수집
- 애플리케이션 종료: 애플리케이션이 실행을 마치면 애플리케이션 마스터는 클러스터 리소스를 해제하고 애플리케이션의 상태와 결과를 클라이언트에게 보고
'Tools > Hadoop' 카테고리의 다른 글
하둡 클러스터와 리소스 할당 (0) | 2023.09.26 |
---|---|
하둡 네임노드와 HDFS (0) | 2023.09.11 |
MapReduce 이해 하기 (0) | 2023.07.25 |
Hadoop HDFS 아키텍쳐 (0) | 2023.07.02 |
Hadoop 컴퓨팅과 클러스터 (0) | 2023.07.02 |