📌 목차
- 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 외에도 다양한 어플리케이션을 실행할 수 있다는 장점을 얻었다.
ResourceManager는 클러스터에 1개, NodeManager는 어플리케이션 당 1개이다.
- 클라이언트가 RM에 어플리케이션 제출
- NM을 통해 AM을 실행
- AM은 RM에 자신을 등록
- AM은 RM을 통해 어플리케이션을 실행할 컨테이너 할당을 요청함
- AM은 NM에게 할당된 컨테이너를 실행하라고 요청함 (AM은 어플리케이션 실행에 필요한 정보를 NM에 제공)
- 컨테이너에서 실행되는 어플리케이션은 상대 정보를 AM에 전송
- 클라이언트는 어플리케이션 실행 상태 정보를 얻기 위해 AM와 직업 통신
- 어플리케이션이 종료되면 AM은 RM에서 자신을 제거하고 셧다운 됨
그냥 이렇게 흘러간다 ~
요약하면, 하둡1 MR은 MR만 실행 가능, 낮은 자원 활용(고정된 MR 슬롯), 확장 한계(JobTracker 병목)이라는 한계점이 있었다. 하둡2 YARN은 범용 컴퓨팅/데이터 클러스터이고, MR 외 다양한 어플리케이션 실행 가능하고 높은 자원 활용, 확장성 개선 (역할 분리) 되었다.
'CS > Data Engineering' 카테고리의 다른 글
[Data Engineering] PageRank - MapReduce Java (0) | 2023.04.18 |
---|---|
[Data Engineering] Inverted Index Java (1) | 2023.04.17 |
[Data Engineering] MapReduce Programming - WordCount, Combiner Java (0) | 2023.04.17 |
[Data Engineering] Hadoop - 하둡, HDFS, MapReduce (0) | 2023.04.17 |
[Data Engineering] Cloud Computing - Virtualizaion, Grid Computing, Cloud Services (0) | 2023.04.17 |