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하고 관련은 없음)