Hadoop Resource Manager 이해하기
이 단계에서는 Hadoop Resource Manager 의 기본 사항과 Hadoop 생태계에서의 역할에 대해 자세히 알아보겠습니다.
먼저, 기본 사용자를 변경합니다:
su - hadoop
Hadoop Resource Manager 는 Hadoop 의 YARN (Yet Another Resource Negotiator, 또 다른 리소스 협상자) 아키텍처의 핵심 구성 요소입니다. 이는 클러스터의 컴퓨팅 리소스를 관리하고 사용 가능한 노드에서 애플리케이션을 스케줄링하는 역할을 합니다.
시작하기 위해, Resource Manager 의 아키텍처를 살펴보겠습니다:
+------------------+
| Resource Manager|
+------------------+
| Scheduler |
| ApplicationsMaster
| NodeManager |
+------------------+
Resource Manager 는 세 가지 주요 구성 요소로 구성됩니다:
- Scheduler (스케줄러): 이 구성 요소는 미리 정의된 스케줄링 정책에 따라 다양한 실행 중인 애플리케이션에 리소스를 할당하는 역할을 합니다.
- ApplicationsManager (애플리케이션 관리자): 이 구성 요소는 작업 제출을 수락하고, ApplicationMaster 를 실행하기 위한 첫 번째 컨테이너를 협상하며, ApplicationMaster 컨테이너의 실패 시 재시작 서비스를 제공하는 역할을 합니다.
- NodeManager (노드 관리자): 이 구성 요소는 클러스터의 각 노드에서 실행되며, Scheduler 에 의해 할당된 컨테이너를 시작하고 모니터링하는 역할을 합니다.
Resource Manager 의 기능을 더 잘 이해하기 위해 간단한 예제를 살펴보겠습니다.
샘플 MapReduce 작업을 클러스터에 제출합니다:
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 16 1000000
작업 상태를 확인합니다:
yarn application -list
출력은 다음과 유사해야 합니다:
2024-03-23 22:48:44,206 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):1
Application-Id Application-Name Application-Type User Queue State Final-State Progress Tracking-URL
application_1711205220447_0001 QuasiMonteCarlo MAPREDUCE hadoop default RUNNING UNDEFINED
이 예제에서는 yarn 명령을 사용하여 MapReduce 작업을 클러스터에 제출합니다. Resource Manager 는 작업 요청을 수신하고 작업을 실행하는 데 필요한 리소스 (컨테이너) 를 할당합니다. 그런 다음 제공된 명령을 사용하여 작업 상태를 확인하고 로그를 볼 수 있습니다.