오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-16 00:02
관리 메뉴

우노

[Spark] yarn 구조 및 실행 순서 본문

Data/Spark

[Spark] yarn 구조 및 실행 순서

운호(Noah) 2020. 7. 14. 20:27

YARN 구조

Yarn 기본 요소

  • Resource Manager : 전체적인 자원 할당 관리

    • Resource Manager는 Client의 요청에 해당하는 Application Manager를 실행
    • Resource Manager는 Node Manager를 통해 전체 클러스터의 Resource 를 알고 관리할 수 있다.
    • Resource Manager 은 클러스터 당 하나만 있다.
  • Application Manager : Client가 요청한 작업을 전적으로 실행

    • 어플리케이션에 필요한 자원 확인 후 Resource Manager에게 자원 요청
    • Node Manager에게 컨테이너를 만들라고 지시
    • 할당된 컨테이너들은 Application Manager가 관리
  • Node Manager : 해당 노드의 자원 관리

    • Node Manager는 Application Manager의 명령에 따라 task 를 실행시킨다.

YARN 실행 순서

  • 1) Client인 우리는 Resource Manager에게 "나 MapReduce 하나 돌리고 싶다." 라고 말한다.
  • 2) Resource Manager는 요청 받은 작업을 실행하기 위해, Message Interface 를 통해 클러스터를 구축하고 있는 세 개의 노드 중 하나에 Application Manager를 실행시킨다.
  • 3) Application Manager는 Client 가 요청한 작업을 전적으로 맡아 수행 할 것이다.
  • 4) Application Manager는 Client 가 요청한 작업이 얼마만큼의 Resource 를 필요로 하는지 파악 한 후에, Resource Manager에게 "이 만큼의 Resource가 작업하는 데 들어가니 할당 좀 해주세요" 라고 말한다.
  • 5) Resource Manager는 AM에게 "알았다 Container 3개 만큼 만들 수 있도록 해줄께" 라고 말한다.
  • 6) Application Manager는 각 노드의 Node manager에게 Container 를 만들라고 지시하고 Node Manager는 Container 를 만든다. (실질적으로 Container 를 만드는 건 NM)
    • 여기서 말하는 Container는 Resource 라고 봐도 무방하다.
    • task 가 실행되기 위한 공간이며, 많으면 많을수록 task 가 많이 실행 될 것이다.
  • 7) 할당된 Container 들은 이제 Application Manager가 관리한다.
    • Application Manager의 세상이다.
  • 8) Application Manager는 각 노드의 Node Manager에게 "너는 이런 task 를 실행하고, 너는 저런 task 를 실행해라" 라고 명령하고, Node Manager 은 그 명령에 따라 task 를 실행시킨다.
  • 9) 작업이 완료되면 Application Manager는 결과를 Client 에게 보낸다.
  • 10) 또한 Application Manager는 Resource Manager 에게 "일 다 끝났어요!" 라고 말 하고 자신을 정지한다.
  • 11) Resource Manager는 Application Manager 에게 할당한 Resource들을 모두 수거해간다.
Comments