CS/Data Engineering

[Data Engineering] YARN (하둡2) - MapReduce 시스템 단점 (하둡1)

하노정 2023. 4. 17. 09:10

📌 목차

  • MapRuduce 시스템의 몇 가지 단점 (하둡1)
  • YARN (하둡2)

 

🍀 MapReduce 시스템의 몇 가지 단점 (하둡1)

MapReduce Job을 수행하기 위해서 JobTracker, TaskTracker가 있었고 JobTracker가 전체의 Job을 관리하고 TaskTracker는 각 노드에 뜨는 map, reduce Task를 관리한다.

하둡1에서 이런 시스템 구조는 JobTracker의 경우 클러스터의 자원 배분과 Job 관리를 함께 수행하게 된다. 클러스터에서 주요 병목 지점이 되곤 한다.

TaskTracker는 한 노드에서 실행할 수 있는 map, reduce Task 개수가 제한된다. 즉, 노드에 여유 자원이 있어도 그 자원을 활용하지 못하는 상황이 발생한다. MapReduce Job만 실행 가능하다. 

현대에는 노드들이 전부 HDFS의 DataNode일텐데 실제로 빅데이터 computing을 할 때 MapReduce 스타일의 Job만 있는 게 아니다. 근데 JobTracker, TaskTracker는 구조상 다른 형태의 Job들을 실행하기가 불가능하다는 단점이 있다. 그래서 나온 게 새로운 리소스 매니저인 YARN이다.

 

🍀YARN (하둡2)

하둡 버전 2부터는 새로운 자원 관리 시스템 YARN을 사용하고 있다. 

MapReduce 하둡1 시스템의 JobTracker가 하던 두 가지 역할을 분리한다. 기존 JobTracker에 몰리던 병목을 제거할 수 있다.

  • 자원관리 -> ResourceManager
  • Job 상태 관리 -> ApplicationMaster

MapReduce 스타일의 Job 외에도 다양한 어플리케이션을 실행할 수 있다는 장점을 얻었다. 

 

YARN의 구조

ResourceManager는 클러스터에 1개, NodeManager는 어플리케이션 당 1개이다. 

YARN 실행 흐름

  1. 클라이언트가 RM에 어플리케이션 제출
  2. NM을 통해 AM을 실행
  3. AM은 RM에 자신을 등록
  4. AM은 RM을 통해 어플리케이션을 실행할 컨테이너 할당을 요청함
  5. AM은 NM에게 할당된 컨테이너를 실행하라고 요청함 (AM은 어플리케이션 실행에 필요한 정보를 NM에 제공)
  6. 컨테이너에서 실행되는 어플리케이션은 상대 정보를 AM에 전송
  7. 클라이언트는 어플리케이션 실행 상태 정보를 얻기 위해 AM와 직업 통신
  8. 어플리케이션이 종료되면 AM은 RM에서 자신을 제거하고 셧다운 됨

그냥 이렇게 흘러간다 ~

YARN에서의 MR 실행

 

요약하면, 하둡1 MRMR만 실행 가능, 낮은 자원 활용(고정된 MR 슬롯), 확장 한계(JobTracker 병목)이라는 한계점이 있었다. 하둡2 YARN범용 컴퓨팅/데이터 클러스터이고, MR 외 다양한 어플리케이션 실행 가능하고 높은 자원 활용, 확장성 개선 (역할 분리) 되었다.