일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리눅스
- 자료구조
- linux
- 설치
- redhat
- 레드햇
- 자바
- 스토리지
- algorithm
- 스프링
- Redshift
- 빅데이터
- 도커
- storage
- docker
- big data
- data
- hadoop
- 알고리즘
- Data Structure
- AWS
- 아마존
- sort
- recursive
- Amazon
- 하둡
- Spring
- java
- 재귀
- rhcsa
- Today
- Total
Developer MJ
[Hadoop] Yarn (resource manager) - part 1 본문
Hadoop YARN 의 배경
하둡 온디맨드
공유 HDFS 내에 존재하는 영속적인 데이터를 공유하기 위한 private computing cluster를 수동으로 배포하고 해체하는 multitenency 이슈를 해결하기 위해 개발된 하둡 플랫폼
범용 하드웨어의 공유 클러스터에서 작동하는 하둡 맵리듀스와 HDFS 인스턴스를 프로비저닝하고 관리하는 YARN의 선행 프로젝트
단점 :
데이터 로컬리티 : 맵리듀스 잡트래커는 HDFS 내 입력데이터 인접한 곳에 잡을 배치하려고하지만, HOD의 리소스매니저인 토크sms HDFS에 데이터가 어떻게 분산되어있는지 데이터 로컬리티에 대한 정보가 없기 때문에
적은 양의 큰 작업과 많은 양의 작은 작업을 야기해 작은 작업들이 호스트에서 동작하게 만들었다.
토크/마우이의 일시적인 개선으로 랙을 인식하는 방식으로 HDFS 데이터에 대한 위치를 인지하게 만들었지만, 맵리듀스 작업의 셔플이 랙을 통해서 일어나게 되면서 사용자의 워크로드 속도를 현저히 감소시켰다.클러스터 이용률 : 아파치 피그와 하이브 등의 햐이레벨 프레임워크는 DAG로 워크플로우를 구성하는데, HOD는 단일 잡이나 잡 사이에 클러스터 조정이 되지 않아 보틀넥이 되는 작업이 종료되지 않은 상태에서는 수백/수천대의 유휴 노드들이 발생하는 이슈가 있다.
탄력성 : 하둡 워크플로우에서 맵 태스트는 짧고 빠르며, 리듀스 태스크는 과중한 IO로 오래 걸린다. 그러나 HOD는 클러스터를 확장하고 축소하는 방법을 지원하고 있지 않기 때문에 리듀스 태스크가 진행되는 동안 맵 태스크는 모두 종료되어 유휴 노드가 발생해 클러스터 이용률에 영향을 미친다.
공유 맵리듀스 컴퓨팅 클러스터
HOD의 단점은 다음 단계로의 발전하게 했고, 공유 HDFS 인스턴스에 맵리듀스 클러스터를 공유하는 모델로 전환됐다.
단점 :
확장성 : HOD의 구성요소에서 분리되어 공유 맵리듀스 클러스터에 적용된 잡트래커가 수천대의 이상의 노드를 가진 클러스터로 확장될 떄 잡트래커 하트비트의 지연으로 리소스 락킹이 정상 동작하지 않는 이슈가 생겼다.신뢰성과 가용성 : 공유 클러스터를 사용하면서 HOD의 private cluster에서 실행되는 단일워크플로우 장애로 인한 손실이 잡트래커의 장애로 실행중인 모든 잡에 대한 손실을 발생 시켜 신뢰성 이슈가 있었고,
공유 클러스터에 새 버전의 하둡을 배포할때 발생하는 클러스터 다운타임으로 가용성 이슈가 있었다.맵 리듀스 프로그래밍의 오용 : DAG의 형태로 워크플로우가 구성되는 맵리듀스 프로그래밍에 머신러닝 알고리즘과 같이 동일 작업을 여러번 반복해야 결과에 수렴하는 작업을 수행하는 형태로 프로그래밍 되어 DAG가 아닌 방식으로 동작하는 워크플로우의 지원이 필요했다.
사용자 로그 : 태스크 트래커 데몬에 의해 각 노드에서 일정 기간동안 남아 관리되던 사용자 로그가 개별노드가 죽거나 오프라인일 경우 로그를 손실하게 되는 현상이 발생했다.
YARN
- 'Yet Another Resource Negotiator'의 줄임말로 하둡 클러스터의 하위호환성을 제공하면서 HOD(하둡 온디맨드)와 기존 맵리듀스 클러스터의 단점을 보완 및 해결하여 맵리듀스의 데이터 처리와 자원 스케줄링을 분리해 클러스터 이용률과 확장성을 제공하고 비맵리듀스 어플리케이션을 허용하는 클러스터의 운영체제와 같다.
- YARN 설계 단계에서의 요구사항
- 확장성
- 사용성
- 멀티테넌시
- 로컬리티 인식
- 클러스터 이용률
- 보안 및 모니터링
- 신뢰성과 가용성
- 다양한 프로그래밍 모델 지원
- 유연한 자원 모델
- 맵리듀스 하위 호환성