우노
[Spark] yarn 구조 및 실행 순서 본문
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들을 모두 수거해간다.
'Data > Spark' 카테고리의 다른 글
[Spark] spark.executor.heartbeatInterval 오류 (0) | 2020.07.27 |
---|---|
[Spark] Java, Spark, Scala 버전 변경하기 (0) | 2020.07.16 |
[Spark] sbt를 사용한 간단한 Jar 파일 빌드 (0) | 2020.07.14 |
[Spark] RDD 란? (0) | 2020.07.13 |
[Spark] Spark와 Hadoop MapReduce의 차이 (0) | 2020.07.12 |
Comments