<aside> 💡 대체 가능 Tool : Mesos

Mesos : 커널 기반의 프로세스 handling으로 다중 프레임워크 스케줄 지원(non-monolithic) YARN : jvm 기반의 프로세스 handling으로 YARN 단일 스케줄 지원(monolithic)

둘 다 클러스터 리소스 매니저 역할을 하지만 커널 기반과 JVM기반 프로세스 차이점이 있다. 하둡이 자바 기반의 프레임 워크라서 더 좋은 호환을 기대할 수 있다.

</aside>

등장 배경)

얀은 하둡 V1 의 라이프 사이클 관리와 클러스터 리소스 관리를 모두 잡트레커에서 처리 하면서 생기는 병목 현상을 없애기 위해 하둡 V2 에서 생성된 아키텍처이다.

자원관리)

노드매니저는 클러스터의 각 노드마다 실행되며, 현재 노드의 자원 상태를 관리하고, 리소스매니저에 현재 자원 상태를 보고한다.

리소스 매니저는 노드매니저로 부터 받은 정보를 이용하여 자원 사용 상태를 모니터링하고, 애플리케이션 마스터가 자원을 요청하면 비어 있는 자원을 할당 하며 클러스터 전체의 자원 관리를 한다.

(자원 분배는 스케줄러(Scheduler) 에 설정된 규칙에 따라 자원을 분배한다.)

라이프 사이클)

애플리케이션 마스터와 컨테이너를 이용해 처리한다. 애플리케이션 마스터는 리소스매니저에 의해서 실행된다. 생성된 애플리케이션 마스터는 리소스매니저에게 작업 실행을 위한 리소스 매니저를 요청하고, 할당받은 자원의 각 노드에 컨테이너를 통해 실제 작업을 실행한다. 컨테이너는 작업이 종료되면 애플리케이션 마스터에서 알리고, 애플리케이션 마스터는 리소스 매니저에 종료 되었음을 알리고 자원을 해제한다.