데이터왕 2024. 1. 16. 22:36

하둡 2.0(yarn 1.0) : 분산 컴퓨팅 시스템 

  • 분산 컴퓨팅 시스템은 여러 대의 컴퓨터를 활용하여 데이터 처리 또는 계산 작업을 수행하는 시스템을 의미
  • 하둡 2.0은 분산 컴퓨팅을 지원하는 프레임워크 중 하나로, 그 중요한 기능 중 하나가 YARN(Yet Another Resource Negotiator)이라 불리는 리소스 매니저

하둡 2.0의 구성요소

  1. 리소스 매니저 (Resource Manager): 하둡 2.0에서 중요한 역할을 하는 부분 중 하나입니다. 리소스 매니저는 전체 클러스터에서 사용 가능한 자원을 효율적으로 관리하고, 각각의 작업이 필요로 하는 자원을 할당합니다. 이는 Job Scheduler와 Application Manager로 구성되어 있습니다.

    1) Job Scheduler: 작업을 관리하고 스케줄링하는 역할을 합니다. 여러 작업 중에서 어떤 작업을 언제 실행할지를 결정하며, 리소스 매니저에게 자원을 요청하여 작업을 수행합니다.
    2) Application Manager: 어플리케이션의 생명 주기를 관리합니다. 어플리케이션 실행, 종료, 실패 등의 이벤트를 처리하고 어플리케이션 상태를 유지합니다.

  2. 노드 매니저 (Node Manager): 각 컴퓨터 노드에서 실행되며, 노드의 자원 사용 및 상태를 리소스 매니저에게 보고합니다. 리소스 매니저가 할당한 자원을 기반으로 작업을 수행하는 역할을 합니다.

  3. 컨테이너: 리소스를 격리된 환경에서 실행하기 위한 메커니즘입니다. 앱 마스터와 태스크를 실행하는 데 사용됩니다.
    1) 앱 마스터 (Application Master): 각 어플리케이션마다 할당된 리소스를 관리하는 역할을 합니다. 어플리케이션의 실행 계획을 작성하고, 노드 매니저에게 자원을 할당받아 태스크를 실행합니다.
    2) 태스크: 실제로 수행되어야 하는 작업 단위입니다. 어플리케이션의 로직을 실행하는 부분이며, 컨테이너 내에서 실행됩니다.


YARN의 동작

  1.  **어플리케이션 및 환경 정보 전달:**
       - 사용자가 실행하려는 코드와 관련된 환경 정보를 Resource Manager(RM)에게 전달합니다.
       - RM은 이 정보를 기반으로 실행에 필요한 자원을 할당하게 됩니다.

  2. **파일 복사:**
       - 실행에 필요한 파일들은 HDFS에 해당하는 어플리케이션 ID의 폴더에 미리 복사됩니다.
       - 이는 분산 파일 시스템인 HDFS에 저장된 데이터를 활용하여 데이터의 안정성과 고가용성을 보장합니다.

  3.  **컨테이너 할당:**
       - RM은 NM(Node Manager)으로부터 컨테이너를 받아옵니다.
       - Application Master(AM)은 각각의 어플리케이션에 대해 할당된 프로그램 마스터에 해당합니다.

  4. **AM이 리소스 요구:**
       - AM은 실행에 필요한 리소스를 RM에게 요구합니다.
       - RM은 data locality를 고려하여 리소스(컨테이너)를 할당합니다.
  5. **리소스 할당 및 파일 복사:**
       - 할당된 리소스는 실행에 필요한 파일들과 함께 해당 노드의 HDFS로 복사됩니다.
       - 이때 data locality를 고려하여 데이터를 가지고 있는 노드에 할당되어 I/O 성능을 최적화합니다.
  6.  **컨테이너 내에서 코드 실행:**
       - AM은 할당받은 리소스(컨테이너)를 NM을 통해 실행합니다.
       - 컨테이너 내에서 코드가 실행되며, 복사된 파일들이 활용됩니다.
  7. **태스크 상태 보고:**
       - 각 태스크는 주기적으로 AM에게 상태를 보고합니다(heartbeat).
       - 만약 태스크가 실패하거나 보고가 오랜 시간 없으면, 해당 태스크를 다른 컨테이너로 재실행할 수 있습니다.

하둡 3.0의 특징

  1.  **YARN 2.0의 도입:**
       - 하둡 3.0에서는 YARN (Yet Another Resource Negotiator) 버전이 업그레이드되었습니다. YARN은 분산 컴퓨팅을 위한 자원 관리 시스템으로, 하둡 클러스터에서 다양한 작업들을 효율적으로 실행할 수 있게 합니다.
       - YARN 2.0에서는 프로그램들을 논리적인 그룹으로 나누어서 자원 관리가 가능한데, 이를 '플로우(Flow)'라고 부릅니다. 이로써 데이터 수집과 데이터 서빙 프로세스 등을 분리하여 관리할 수 있게 되었습니다.

  2. **타임라인 서버와 HBase 사용:**
       - YARN 2.1부터는 타임라인 서버에서 HBase를 기본 스토리지로 사용합니다. 타임라인 서버는 YARN 애플리케이션의 실행 이력 정보를 수집하고 검색할 수 있는 기능을 제공합니다.
       - 이를 통해 클러스터에서 실행되는 애플리케이션들에 대한 이력과 메트릭 데이터를 효과적으로 저장하고 조회할 수 있습니다.

  3. **다양한 파일 시스템 지원:**
       - 하둡 3.0에서는 Hadoop Distributed File System (HDFS)의 내임노드가 다수의 스탠바이 내임노드를 지원합니다. 이것은 내임노드의 고가용성을 향상시키고, 클러스터의 안정성을 높입니다.
       - 또한, HDFS뿐만 아니라 다양한 파일 시스템을 지원합니다. S3, Azure Storage 외에도 Azure Data Lake Storage 등을 통합적으로 지원하여 유연성을 제공합니다.