YARN의 이해

YARN 아키텍쳐

YARN은 4개의 컴포넌트(Resource Manager, Node Manager, Application Master, Container)로 이루어져 있다.

  • Resource Manager - 리소스 매니져는 전체 클러스터에서 사용가능한 자원을 관리하고, 얀 클러스터에서 수행되는 어플리케이션이 자원을 요청했을 경우 이를 할당해준다.
  • Node Manager - 하둡1의 TaskTracker와 같은 기능을 수행한다. 하지만 Task Tracker가 Child Process를 실행시켰던 것과 달리, 컨테이너라는 컴포넌트를 실행시키고, 컨테이너의 라이프사이클을 관리한다.
  • Container - Task의 실행 단위이다. 하나의 Container는 리소스 매니저가 할당한 시스템 자원을 활용할 수 있다.
  • Application Master - Job의 실행단위이다. Application Master는 하나의 Job을 수행하고, Job을 이루는 Task들은 다시 Application Master가 Node Manager에게 요청하여 Container 단위로 수행한다.

YARN 작업 흐름

  1. 얀 API를 구현한 어플리케이션 실행을 Resource Manager에게 요청한다. 정상적인 실행 요청일 경우 Application ID를 할당한다.
  2. Resource Manager는 Node Manager에게 어플리케이션 실행을 요청한다. Node Manager는 새로운 컨테이너(Application Master)를 실행한다.
  3. Application Master는 Resource Manager에게 어플리케이션을 실행하기 위한 리소스를 요청한다. Resource Manager는 클러스터를 구성하는 각 노드를 확인하여 가용 가능한 자원이 존재하는 Node들의 Node Manager 목록을 전송한다.
  4. Application Master는 할당받은 Node Manager에게 컨테이너 실행을 요청한다.
  5. Node Manager들은 컨테이너를 생성하여 Application의 Task를 실행한다. 어플리케이션이 종료되면 Application Master가 종료되고 Resource Manager는 Application Master가 할당받았던 자원을 회수한다.

results matching ""

    No results matching ""