Hadoop 1의 아키텍처를 이해해야 Hadoop 2의 아키텍처를 이해할 수 있습니다.
Hadoop 1
- Job Tracker는 MapReduce Job을 추적하고, 실행하고, 관리하고 자원을 관리함
- Task Tracker는 Task(Map Task, Reduce Task)를 실행하고 이를 추적하고, 모니터링 및 상태 정보를 Job Tracker에게 보고함
Hadoop 2 이상
- Hadoop 1의 Job Tracker와 Task Tracker의 역할이 대규모 클러스터에서 과도하게 부하가 발행하는 이슈가 이고, SPOF 문제가 있었음
- Job Tracker의 부하 및 과도한 역할을 분리함 → Resource Manager, Node Manager
- Task Tracker의 역할을 분리함 → Node Manager, Application Master
- YARN이라는 것은 Resource Manager, Node Manager, Application Master로 구성된 전체 체계
- YARN은 플러그인 아키텍처로 Application Type을 추가 확장 가능함
- Application Type 별로 반드시 Application Master가 필요함 → Application Type을 만드는 개발자가 개발해야 함
- MapReduce Application Master
- Spark Application Master
- ...
- Application Master는 실제로 Application의 실행 및 추적을 하여 Node Manager에게 보고함
- HDFS가 고장나면 MapReduce 등을 실행할 수 없음 (왜냐하면 실행 Binary를 HDFS에 업로드하기 때문에)
- YARN에서는 YARN에서 동작하는 프로그램을 Application이라고 하며 MapReduce Application Master에서는 MapReduce Job이라고 부름(AppMaster에서 어떻게 부르든 그건 YARN하고 관련은 없음)