Programming/Java

YARN Distributed Shell Application - Client - 주석

라우드니스 2015. 3. 23. 21:29

YARN에 Distributed Shell application을 제출하는 Client


distributed shell client는 application master가 container들의 set에서 제공된 shell command를 실행하는것을 가능하도록 한다.


이 Client는 어떻게 yarn 기반의 어플리케이션들을 작성하는지 예제 역할을 한다.


application을 제출하기 위해, client는 첫째로 ResourceManager 혹은 ApplicationManager, ASM으로 알려진 것에 ApplicationClientProtocol을 통하여 접속한다. ApplicationClientProtocol은 client가 cluster 정보에 접근하거나 새로운 ApplicationId를 요청하는것을 제공한다.


실제 job 제출을 위하여, client는 첫째로 ApplicationSubmissionContext를 생성해야한다. ApplicationSubmissionContext는 ApplicationId와 application name, application에게 할당할 우선순위 및 application이 할당되기를 원하는 queue등과 같은 application detail들을 정의한다. 여기에 더해서, ApplicationSubmissionContext 또한 ContainerLaunchContext를 정의하는데 이것은 ApplicationMaster가 실행될 Container를 묘사한다.


이 시나리오에서 ContainerLaunchContext는 ApplicationMaster의 container, ApplicationMaster가 실행가능하도록 설정하는 환경 및 local resources (jars, configuration files) 그리고 ApplicationMaster를 실행하는데 사용될 command들을 정의한다.


 ApplicationSubmissionContext를 사용하여서, Client는 Application을 ResourceManager에게 제출하고 ResourceManager에게 ApplicationReport를 정기적으로 요청하여서 application을 감시한다. application이 너무 길게 가져가는 경우에는, client는 ResourceManager에게 KillApplicationRequest를 전송하여 application을 kill 한다.

반응형