본문 바로가기

AI/빅데이터

3.하둡-YARN

-YARN
클러스터 리소스 관리 및 애플리케이션 라이프 사이클 관리를 위한 아키텍처
YARN은 잡트래커의 기능을 분리하여 자원을 관리하는 리소스 매니저와 노드매니저, 애플케이션 라이프 사이클 관리하는 애플리케이션 마스터와 컨테이너로 구성

YARN-Schduler
리소스 매니저는 클러스터 자원을 관리하고 애플리케이션 마스터의 요청을 받아 자원을 할당한다. 자원 할당을 위한 정책을 스케줄러라고함. 하둡에서 제공하는 기본 스케줄러는
FIFO-Schduler, Fari-Scheduler, Capacity-Scheduler 가 있음.

스케줄러는 yarn-site.xml 파일에 yarn.resourcemanager.scheduler.class에 다음의 클래스명을 적어주면 수정됨

ex)

<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
스케줄러 설명
FIFO-Scheduler First-In First-Out 으로 먼저 들어온 작업이 먼저 처리가 된다.
Fair-Scheduler 제출된 작업이 동등하게 리소스를 점유, 작업 큐에 작업이 제출되면 클러스터는 자원을 조절하여 작업에 균등하게 자원을 할당
Capacity-Scheduler 트리 형태로 큐를 선언하고 각 큐 별로 이용할 수 있는 자원의 용량을 정하면 그 용량에 맞게 자원을 할당

 

●YARN 메모리 설정
YARN 메모리 설정은 yarn-site.xml 파일을 수정하여 변경 가능

리소스 매니저 설정

-yanr.nodemanager.resource.memory-mb
클러스의 각 노드에서 컨테이너 운영에 설정할 수 있는 메모리의 총량

-yarn.nodemanager.resource.cpu-vcores
클러스터의 각 노드에서 컨테이너 운영에 설정할 수 있는 CPU 개수

-yarn.scheduler.maximum-allocation-mb
하나의 컨테이너에 할당할 수 있는 메모리의 최대값

-yarn.scheduler.minimum-allocation-mb
하나의 컨테이너에 할당할 수 있는 메모리의 최소값

-yarn.nodemanager.vmem-pmem-ratio
실제 메모리 대비 가상 메모리 사용 비율

-yarn.node.manager.vmem.check-enabled
가상 메모리에 대한 제한이 있는 확인하여, true 일 경우 메모리 사용량을 넘어서면 컨테이너 종료

-yarn.nodemanager.pmem-check-enabled
물리 메모리에 대한 제한이 잇는지 확인하여 true 일 경우 메모리 사용량을 넘어서면 컨테이너 종료

 

ex)

<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>28672</value>
  </property>
  <property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>8</value>
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
  </property>
  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
  </property>
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>

'AI > 빅데이터' 카테고리의 다른 글

범주형 데이터 다루기  (0) 2021.06.23
수치형 데이터 다루기  (0) 2021.06.22
3.하둡-맵리듀스  (0) 2021.02.18
3.하둡-2  (0) 2021.02.18
3.하둡-1  (0) 2021.02.17