SyntaxHighlighter.all();

YARN : 하둡의 클러스터 자원 관리 시스템

          클러스터의 자원을 요청하고 사용하기위한 API 제공

YARN 애플리케이션, 하둡완벽가이드

 

1. YARN 애플리케이션

 YARN은 장기 실행 데몬을 통해 서비스 제공

YARN이 애플리케이션을 구동하는 방식, 하둡완벽가이드

   1) 리소스 매니저

       클러스터 전체 자원의 사용량을 관리 (한개)

   2) 노드 매니저

       컨테이너를 구동하고 모니터링하는 역할 (모든 머신에서 실행됨)

        * 컨테이너 : 자원(메모리,cpu)의 사용 한도를 가진 특정 어플리케이션 프로세스는 컨테이너에서 실행됨

   3) YARN이 애플리케이션을 구동하는 방식

        (1) YARN 애플리케이션 제출

                 클라이언트는 YARN에서 애플리케이션을 구동하기 위해 리소스 매니저에 접속

                 애플리케이션 마스터 프로세스의 구동을 요청

        (2) 컨테이너 시작하기(2a), 구동(2b)

                 리소스 매니저는 컨테이너에서 애플리케이션 마스터를 시작할 수 있는 노드 매니저를 하나 찾음

                 * 애플리케이션 마스터가 딱 한번 실행될지는 애플리케이션에 따라 다름

                         ex) 한번 실행되는 경우 - 애플리케이션 마스터가 단순한 계산을 단일 컨테이너에서 수행하고

                                                          그 결과를 클라이언트에 반환한 후 종료되는 경우

                             여러번 실행되는 경우 - (3), (4) 과정 진행

        (3) 리소스 할당-하트비트(3), 컨테이너 시작하기(4a), 구동(4b)

                 리소스 매니저에 더 많은 컨테이너 요청(3)한 후 분산 처리를 수행함 (4a, 4b)

 

2. YARN 애플리케이션 - 자원요청

 - 다수의 컨테이너 요청시 각 컨테이너에 필요한 컴퓨터 자원의 용량, 요청에 대한 컨테이너의 지역성 제약도 표현

* 지역성 제약
    - 분산 데이터 처리 알고리즘에서 클러스터의 네트워크 대역폭을 효율적으로 활용하기 위해서는 지역성 보장이 중요
    - 지역성 제약은 특정 노드나 렉 or 클러스터의 다른 곳(외부렉)에서 컨테이너를 요청할 때 사용
    - 지역성 제약이 불가능할 때 : 할당이 실패하거나 선택적으로 제약을 조금 느슨히 적용할 수 있음

 

- YARN 애플리케이션은 실행 중에는 아무 때나 자원 요청을 할 수 있다. (2가지 방식)

      (1) 스파크 방식

             - 애플리케이션은 처음에 모든 요청을 함

             - 클러스터에서 고정 개수의 수행자를 시작함

       (2) 맵리듀스 방식

             - 애플리케이션은 유동적적인 접근이 필요한 경우에 애플리케이션의 요구에 따라 동적으로 자원 추가를 요청

             - 두 단계로 이루어짐 ( 처음에 필요한 맵 태스크 컨테이너 요청,

                                             But! 리듀스 태스크 컨테이너는 맵 태스크 실행 했을때만 가능)

 

 

3. YARN 애플리케이션 - 애플리케이션의 수명

 - 실행 시간보다는 사용자가 실행하는 잡의 방식에 따라 애플리케이션을 분류

   1) 첫 번째, 사용자의 잡 당 하나의 애플리케이션이 실행

          -  ex) 맵리듀스 잡

   2) 두 번째, 워크플로나 사용자의 잡 세션당 하나의 애플리케이션이 실행

          -  순차적으로 실행되는 잡이 동일한 컨테이너를 재사용할 수 있음(효율적)

          - 잡 사이에 공유 데이터를 캐싱할 수 있음 

         - ex) 스파크

   3) 세 번째, 서로 다른 사용자들이 공유할 수 있는 장기 실행 애플리케이션

          - 일종의 코디네이션 역할 

          -  ex) 아파치 슬라이더 - 클러스터에서 다양한 애플리케이션을 구동시키는 장기 실행 App마스터임

                  임팔라

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts