속삭이는 숲 Node Manager 퀘스트

HadoopBeginner
지금 연습하기

소개

마법에 걸린 속삭이는 숲 깊숙한 곳, 바람의 멜로디에 맞춰 나무들이 춤을 추는 신비로운 영역에, 현명하고 자비로운 마법사 윌로우가 살았습니다. 그녀의 오두막은 숲의 중심부에 자리 잡고 있었으며, 고대 지식과 마법의 성소였습니다. 윌로우의 임무는 숲의 섬세한 균형을 유지하고 그녀의 조언을 구하는 사람들을 인도하는 것이었습니다.

어느 날, 에이든이라는 젊은 견습생이 지혜와 지도를 구하며 속삭이는 숲에 들어섰습니다. 에이든은 윌로우가 강력한 Hadoop 클러스터 (Hadoop cluster) 를 능숙하게 다루며, 방대한 양의 데이터를 비교할 수 없는 효율성으로 처리할 수 있다는 이야기를 들었습니다. 이 놀라운 기술의 방식을 배우기로 결심한 에이든은 윌로우의 제자가 되어 Hadoop 의 Node Manager 의 비밀을 풀기 위해 그녀의 오두막을 찾아갔습니다.

Node Manager 의 역할 탐구

이 단계에서는 Hadoop YARN 아키텍처에서 Node Manager 의 역할에 대해 배우게 됩니다.

Node Manager 는 Hadoop YARN (Yet Another Resource Negotiator) 프레임워크의 중요한 구성 요소입니다. Hadoop 클러스터 내 개별 노드의 리소스를 관리하는 역할을 합니다. 클러스터의 각 노드는 Node Manager 인스턴스를 실행하며, 이는 Resource Manager 와 통신하여 작업을 수신하고 실행합니다.

Node Manager 의 작동 방식은 다음과 같습니다.

  1. 노드 등록 (Node Registration): Node Manager 가 시작되면 Resource Manager 에 자체적으로 등록하여 CPU, 메모리 및 디스크 공간과 같은 노드에서 사용 가능한 리소스에 대한 정보를 제공합니다.
  2. 컨테이너 관리 (Container Management): Node Manager 는 작업에 대한 격리된 실행 환경인 컨테이너를 생성하고 관리하는 역할을 합니다. 각 컨테이너는 Resource Manager 에 의해 정의된 특정 리소스 할당을 갖습니다.
  3. 작업 실행 (Task Execution): Resource Manager 가 노드에 작업을 할당하면 Node Manager 는 컨테이너를 생성하고 그 안에서 작업을 시작합니다. Node Manager 는 작업의 실행을 모니터링하고 상태를 Resource Manager 에 다시 보고합니다.
  4. 리소스 모니터링 (Resource Monitoring): Node Manager 는 각 컨테이너 및 노드의 리소스 사용량을 지속적으로 모니터링하여 작업이 할당된 리소스보다 더 많은 리소스를 소비하지 않도록 합니다.
  5. 상태 모니터링 (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
...

Node Manager 로그 파일 검토

이 단계에서는 Node Manager 에서 생성된 로그 파일을 검토하는 방법을 배우게 됩니다. 이는 Node Manager 의 운영 및 잠재적인 문제에 대한 귀중한 통찰력을 제공할 수 있습니다.

Node Manager 로그 파일은 /home/hadoop/hadoop/logs 디렉토리에 있습니다. 다음은 이러한 로그에 액세스하고 보는 방법입니다.

  1. 먼저 로그 디렉토리로 이동합니다.
cd /home/hadoop/hadoop/logs
  1. 사용 가능한 로그 파일을 나열합니다.
ls

nodemanager에 대한 logout과 같은 파일을 볼 수 있습니다.

  1. 로그 파일 내용을 보려면 nano와 같은 텍스트 편집기 또는 tail 또는 less와 같은 명령줄 도구를 사용할 수 있습니다. 예를 들어:
tail -n 100 hadoop-hadoop-nodemanager-iZj6c0nuyqgkz1limqj5htZ.log

이 명령은 Node Manager 로그 파일의 마지막 100 줄을 표시합니다.

...
2024-03-04 13:39:01,626 INFO org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl: Registered with ResourceManager as iZj6c0nuyqgkz1limqj5htZ:41069 with total resource of <memory:8192, vCores:8>
...

로그 파일에는 다음과 같은 다양한 유형의 정보가 포함되어 있습니다.

  • Node Manager 시작 및 종료 이벤트
  • 컨테이너 할당 및 시작
  • 리소스 사용량 및 모니터링 데이터
  • 오류 메시지 및 경고

로그 파일을 검토하여 실패한 컨테이너 시작, 리소스 경합 또는 노드 상태 문제와 같은 Node Manager 와 관련된 문제를 해결할 수 있습니다.

Node Manager 속성 설정

이 단계에서는 Node Manager 의 동작 및 리소스 할당을 사용자 정의하기 위해 Node Manager 의 속성을 구성하는 방법을 배우게 됩니다.

Node Manager 속성은 일반적으로 /home/hadoop/hadoop/etc/hadoop 디렉토리에 있는 yarn-site.xml 구성 파일에 정의됩니다. 다음은 이러한 속성을 수정하는 방법입니다.

  1. Hadoop 구성 디렉토리로 이동합니다.
cd /home/hadoop/hadoop/etc/hadoop
  1. 텍스트 편집기에서 yarn-site.xml 파일을 엽니다.
vim yarn-site.xml
  1. 노드의 컨테이너에 할당할 수 있는 최대 물리적 메모리 양 (메가바이트) 을 지정하는 yarn.nodemanager.resource.memory-mb 속성을 찾습니다. 클러스터의 메모리 요구 사항에 따라 이 값을 조정할 수 있습니다.
<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>8192</value>
</property>
  1. 또 다른 중요한 속성은 yarn.nodemanager.resource.cpu-vcores로, 노드의 컨테이너에 할당할 수 있는 CPU 코어 수를 결정합니다.
<property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>8</value>
</property>
  1. 변경 사항을 적용한 후 파일을 저장하고 텍스트 편집기를 종료합니다.

  2. 변경 사항을 적용하려면 Node Manager 를 다시 시작해야 합니다.

stop-yarn.sh
start-yarn.sh

이러한 속성을 조정하여 클러스터의 요구 사항 및 워크로드 특성에 따라 리소스를 할당하도록 Node Manager 를 구성할 수 있습니다.

요약

이 랩에서는 YARN 프레임워크의 중요한 구성 요소인 Hadoop 의 Node Manager 의 세계를 탐험했습니다. 현명한 마법사 Willow 의 안내를 받아 신비로운 Whispering Woods 를 여행하며, Node Manager 가 리소스를 관리하고, 작업을 실행하며, Hadoop 클러스터의 상태를 유지하는 역할에 대해 배웠습니다.

실습 단계를 통해 Node Manager 의 상태를 검토하고, 로그 파일을 분석하며, 리소스 할당을 사용자 정의하기 위해 속성을 구성하는 실질적인 경험을 얻었습니다. Node Manager 를 마스터함으로써 Hadoop 생태계 내에서 방대한 양의 데이터를 효율적으로 처리할 수 있는 능력을 얻었습니다.

이 랩은 기술적인 기술을 제공했을 뿐만 아니라 데이터 처리의 마법 같은 영역에 대한 더 깊은 이해를 길렀습니다. Willow 가 숲의 섬세한 균형을 유지했던 것처럼, 이제 Node Manager 의 힘을 활용하고 Hadoop 클러스터의 최적의 성능과 안정성을 보장하는 지식을 갖추게 되었습니다.