Node Manager 의 역할 탐구
이 단계에서는 Hadoop YARN 아키텍처에서 Node Manager 의 역할에 대해 배우게 됩니다.
Node Manager 는 Hadoop YARN (Yet Another Resource Negotiator) 프레임워크의 중요한 구성 요소입니다. Hadoop 클러스터 내 개별 노드의 리소스를 관리하는 역할을 합니다. 클러스터의 각 노드는 Node Manager 인스턴스를 실행하며, 이는 Resource Manager 와 통신하여 작업을 수신하고 실행합니다.
Node Manager 의 작동 방식은 다음과 같습니다.
- 노드 등록 (Node Registration): Node Manager 가 시작되면 Resource Manager 에 자체적으로 등록하여 CPU, 메모리 및 디스크 공간과 같은 노드에서 사용 가능한 리소스에 대한 정보를 제공합니다.
- 컨테이너 관리 (Container Management): Node Manager 는 작업에 대한 격리된 실행 환경인 컨테이너를 생성하고 관리하는 역할을 합니다. 각 컨테이너는 Resource Manager 에 의해 정의된 특정 리소스 할당을 갖습니다.
- 작업 실행 (Task Execution): Resource Manager 가 노드에 작업을 할당하면 Node Manager 는 컨테이너를 생성하고 그 안에서 작업을 시작합니다. Node Manager 는 작업의 실행을 모니터링하고 상태를 Resource Manager 에 다시 보고합니다.
- 리소스 모니터링 (Resource Monitoring): Node Manager 는 각 컨테이너 및 노드의 리소스 사용량을 지속적으로 모니터링하여 작업이 할당된 리소스보다 더 많은 리소스를 소비하지 않도록 합니다.
- 상태 모니터링 (Health Monitoring): Node Manager 는 또한 디스크 오류 또는 네트워크 연결 문제와 같은 문제를 확인하여 노드 자체의 상태를 모니터링합니다. 노드가 비정상 상태가 되면 Node Manager 는 이를 Resource Manager 에 보고할 수 있으며, Resource Manager 는 작업 재시작 또는 재예약과 같은 적절한 조치를 취할 수 있습니다.
Node Manager 의 역할을 탐구하기 위해 먼저 hadoop 사용자로 전환해 보겠습니다.
su - hadoop
다음으로, 다음 명령을 실행하여 Node Manager 의 상태를 확인할 수 있습니다.
yarn node -status <Node-Id>
팁 (tips): yarn node -list 명령으로 'Node-Id'를 찾을 수 있습니다.
이 명령은 실행 중인 Node Manager 에 대한 정보를 표시하며, 여기에는 주소, 노드에서 사용 가능한 리소스 및 현재 실행 중인 컨테이너가 포함됩니다.
hadoop:~/ $ yarn node -status iZj6c4hvgdd6j6qljtbxoaZ:39885 [21:53:30]
2024-03-23 21:54:08,741 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
2024-03-23 21:54:09,119 INFO conf.Configuration: resource-types.xml not found
2024-03-23 21:54:09,128 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
Node Report :
Node-Id : iZj6c4hvgdd6j6qljtbxoaZ:39885
Rack : /default-rack
Node-State : RUNNING
Node-Http-Address : iZj6c4hvgdd6j6qljtbxoaZ:8042
Last-Health-Update : Sat 23/Mar/24 09:52:56:762CST
...