::: 데이터 분석 :::

Ambari의 YARN ResourceManager에서 가용 vCPU 늘리기

곰탱이푸우 2023. 5. 15. 08:20
Bigtop에서 제공하는 Ambari의 YARN (Resource Manager)에서 사용 가능한 vCPU를 늘리는 방법을 정리한다.
 
Ambari 설치를 위한 기본 환경 준비는 아래 포스팅을 참고한다.
Bigtop에서 제공하는 Ambari를 설치하는 방법은 아래 포스팅을 참고한다.
 
 

사용 가능한 vCPU 계산

현재 단일 서버에 7개의 가상 머신을 이용하여 Hadoop 클러스터를 운영중이다.
 
서버의 스펙은 다음과 같다.
  • CPU - 20 Core 40 Thread x 2 (Intel Xeon)
  • RAM - 512G (64G x 8)
  • HDD - 120TB (12TB x 10) / RAID 5
  • SSD - 가상머신을 HDD 영역에 생성했으므로 제외
 
현재 노드는 VirtualBox 가상머신 7개로 운영 중이며, 각 스펙은 다음과 같다.
구분
스펙
개수
NameNode
CPU 8개, RAM 64G, HDD 10TB
1개
Secondary NameNode
CPU 8개, RAM 64G, HDD 10TB
1개
DataNode
CPU 8개, RAM 64G, HDD 10TB+10TB RAID 0
5개
 
단일 서버에서 가상 머신에 할당 가능한 vCPU와 RAM의 적정 범위와 최대 범위가 궁금해졌다.
찾아본 자료에 의하면 다음과 같다.
  • vCPU - 최대 범위는 물리 코어의 16배, 적정 범위는 4배
  • RAM - 최대 범위는 물리 RAM의 1.5배 이내, 권장은 물리 RAM이내
 
40 Core를 기준으로 vCPU 개수를 계산하면 다음과 같다.
  • 최대 개수 = 물리 코어 개수 x 16 = 40 Core x 16 = 640 vCPU
  • 적정 개수 = 물리코어 개수 x 4 = 40 Core x 4 = 160 vCPU
 
또한 가상 서버에 할당 가능한 RAM을 계산하면 다음과 같다.
  • 최대 크기 = 물리 메모리 크기 x 1.5 = 512G x 1.5 = 768G
  • 적정 크기 = 물리 메모리 크기 = 512G
 
안정적으로 운영하기 위해서는 160vCPU / 512G 이내로 사용해야 한다.
특히 Host OS에 필요한 자원을 고려하면 10% 정도 여유 자원은 빼놓아야 한다.
 
 

증상 확인

가상 머신이 총 7개이므로 총 vCPU 개수는 56개 사용 가능하다.
실제로 YARN의 Resource Manager UI에서 확인해보면 전체 vCores 개수가 56인 것을 확인할 수 있다.
 
위에서 계산한대로 vCPU 개수가 160개까지는 안정적으로 운영할 수 있다고 하여 각 노드의 CPU 개수를 16개로 변경했다.
16 vCPU x 노드 7개 = 112 vCPU 이므로 적정 개수인 160개 보다 적다.
 
참고로 변경은 아래와 같은 순서로 진행했다.
  • Ambari 서비스 전부 Stop
  • 모든 노드 ambari-agent stop
  • ambari-server stop
  • 모든 가상 머신 전원 종료
  • 설정 변경
  • 이후 재시작은 위의 역순
 
하지만 YARN ResourceManager UI의 가용 vCPU 개수는 56개 에서 변동이 없었다.
실시간 반영이 안되거나 설정에 문제가 있는 것으로 보인다.
 
 

원인 확인

YARN에서 확인되는 가용 vCPU는 옵션의 yarn.nodemanager.resource.cpu-vcores 속성으로 조정하며 기본 값은 8이다.
 
YARN의 CONFIG에서 해당 옵션을 설정해야 하는데, Bigtop에서 배포하는  Ambari의 Advanced yarn-site 항목에는 해당 항목이 없다.
노드 7개에 기본 값인 8이 적용되어 56개로 표시된 것이다. (노드 7개 x 기본값 8 = 56)
 

해결 방법

yarn.nodemanager.resource.cpu-vcores 속성을 변경하기 위해 Custom yarn-site 항목에 직접 추가해야 한다.
 
YARN - CONFIGS 탭을 클릭한다.
 

 

하단의 Custom yarn-site를 펼쳐서 Add Property ... 를 클릭한다.
 
 
아래와 같이 입력하고 ADD를 클릭한다.
  • Key - YARN의 속성 이름 (yarn.nodemanager.resource.cpu-vcores)
  • Value - 설정할 값 (16)
  • Property Type - TEXT
 
추가 된 설정 값을 확인하고 SAVE를 클릭한다.
 
이후 OK, PROCEED ANYWAY 등을 클릭하면 상단에 아래와 같이 표시된다.

 

RESTART 버튼을 확장해서 Restart All Affected를 클릭한다. YARN이 재시작된다.
 
 

결과 확인

YARN의 Resource Manager UI에서 가용 vCPU가 112개로 변경 된 것으로 확인된다.