Hadoop YARN 자습서 – YARN 아키텍처의 기본 사항 알아보기



이 블로그는 리소스 관리 및 작업 예약을 위해 Hadoop 버전 2.0에 도입 된 Apache Hadoop YARN에 중점을 둡니다. YARN 아키텍처를 구성 요소와 각 구성 요소가 수행하는 의무에 대해 설명합니다. Apache Hadoop YARN의 애플리케이션 제출 및 워크 플로를 설명합니다.

Hadoop YARN은 다양한 처리 도구를 사용하여 Hadoop의 저장 장치 즉, HDFS (Hadoop 분산 파일 시스템)를 구성합니다. 이 주제를 완전히 처음 접하시는 분들을 위해 YARN은“ 와이 노더 아르 자형 esource egotiator”. 나는 또한 당신이 우리의 Apache Hadoop YARN을 배우기 전에. 이 블로그 끝에서 Hadoop YARN에 대한 이해가 명확하도록 여기에서 다음 주제를 설명하겠습니다.

왜 얀?

MRV1 (MapReduce 버전 1)이라고도하는 Hadoop 버전 1.0에서 MapReduce는 처리 및 리소스 관리 기능을 모두 수행했습니다. 단일 마스터 인 Job Tracker로 구성되었습니다. Job Tracker는 리소스를 할당하고 스케줄링을 수행하며 처리 작업을 모니터링했습니다. 작업 추적기라는 여러 하위 프로세스에서 맵을 할당하고 작업을 줄였습니다. 작업 추적기는 주기적으로 작업 추적기에 진행 상황을보고합니다.





MapReduce 버전 1.0-Hadoop YARN-Edureka

이 설계는 단일 작업 추적기로 인해 확장 성 병목 현상을 초래했습니다.IBM은 야후!에 따르면 5000 개의 노드 클러스터와 40,000 개의 작업이 동시에 실행되는 경우 이러한 설계의 실제 한계에 도달한다고 기사에서 언급했습니다.이러한 제한 외에도 MRV1에서는 계산 리소스의 활용이 비효율적입니다. 또한 Hadoop 프레임 워크는 MapReduce 처리 패러다임으로 만 제한되었습니다.



이러한 모든 문제를 극복하기 위해 YARN은 Yahoo와 Hortonworks가 2012 년에 Hadoop 버전 2.0에 도입했습니다. YARN의 기본 아이디어는 Resource Management 및 Job Scheduling의 책임을 인수하여 MapReduce를 완화하는 것입니다. YARN은 Hadoop 프레임 워크 내에서 비 ​​MapReduce 작업을 실행할 수있는 기능을 Hadoop에 제공하기 시작했습니다.

아래 비디오를 시청할 수도 있습니다. 전문가가 YARN 개념 및 아키텍처에 대해 자세히 논의하고 있습니다.

Hadoop Yarn 튜토리얼 | Hadoop Yarn 아키텍처 | Edureka

YARN의 도입으로 완전히 혁명 화되었습니다. 훨씬 더 유연하고 효율적이며 확장 가능해졌습니다. 야후는 2013 년 1 분기에 YARN을 사용하여 하둡 클러스터의 크기를 40,000 개 노드에서 32,000 개 노드로 축소하는 데 도움을주었습니다. 그러나 일자리 수는 월 2,600 만 개로 두 배가되었습니다.



Hadoop YARN 소개

YARN의 필요성에 대해 설명 했으므로 이제 Hadoop v2.0의 핵심 구성 요소를 소개하겠습니다. . YARN을 사용하면 그래프 처리, 대화 형 처리, 스트림 처리 및 배치 처리와 같은 다양한 데이터 처리 방법을 통해 HDFS에 저장된 데이터를 실행하고 처리 할 수 ​​있습니다. 따라서 YARN은 MapReduce 이외의 다른 유형의 분산 애플리케이션에 Hadoop을 엽니 다.

YARN을 통해 사용자는 다음과 같은 다양한 도구를 사용하여 요구 사항에 따라 작업을 수행 할 수 있습니다. 실시간 처리를 위해 하이브 SQL의 경우 HBase NoSQL 및 기타.

리소스 관리 외에도 YARN은 작업 예약을 수행합니다. YARN은 리소스를 할당하고 작업을 예약하여 모든 처리 활동을 수행합니다. Apache Hadoop YARN 아키텍처는 다음과 같은 주요 구성 요소로 구성됩니다.

  1. 리소스 관리자 : 마스터 데몬에서 실행되고 클러스터의 리소스 할당을 관리합니다.
  2. 노드 관리자 : 그들은 슬레이브 데몬에서 실행되며 모든 단일 데이터 노드에서 작업 실행을 담당합니다.
  3. 응용 프로그램 마스터 : 개별 응용 프로그램의 사용자 작업 수명주기 및 리소스 요구를 관리합니다. Node Manager와 함께 작동하고 작업 실행을 모니터링합니다.
  4. 컨테이너: 단일 노드에서 RAM, CPU, 네트워크, HDD 등을 포함한 리소스 패키지.

YARN의 구성 요소

YARN을 Hadoop 생태계의 두뇌로 고려할 수 있습니다. 아래 이미지는 YARN 아키텍처를 나타냅니다.

그만큼 첫 번째 구성 요소 YARN Architecture의

리소스 관리자

  • 자원 할당의 궁극적 인 권한 .
  • 처리 요청을 수신하면 해당 노드 관리자에게 요청의 일부를 전달하여 실제 처리가 수행됩니다.
  • 클러스터 리소스의 중재자이며 경쟁 응용 프로그램에 사용할 수있는 리소스 할당을 결정합니다.
  • 용량 보장, 공정성 및 SLA와 같은 다양한 제약 조건에 대해 모든 리소스를 항상 사용하는 것과 같은 클러스터 활용도를 최적화합니다.
  • 두 가지 주요 구성 요소가 있습니다.a) 스케줄러)응용 프로그램 관리자

a) 스케줄러

  • 스케줄러는 용량, 대기열 등의 제약에 따라 실행중인 다양한 애플리케이션에 리소스를 할당하는 역할을합니다.
  • ResourceManager에서 순수 스케줄러라고하는데, 이는 애플리케이션에 대한 상태 모니터링 또는 추적을 수행하지 않음을 의미합니다.
  • 응용 프로그램 오류 또는 하드웨어 오류가있는 경우 스케줄러는 실패한 작업의 다시 시작을 보장하지 않습니다.
  • 응용 프로그램의 리소스 요구 사항에 따라 스케줄링을 수행합니다.
  • 다양한 응용 프로그램간에 클러스터 리소스를 분할하는 플러그 가능한 정책 플러그인이 있습니다. 다음과 같은 두 가지 플러그인이 있습니다. 용량 스케줄러공정한 스케줄러 , 현재 ResourceManager에서 스케줄러로 사용됩니다.

b) 응용 프로그램 관리자

  • 작업 제출을 수락하는 책임이 있습니다.
  • 애플리케이션 특정 애플리케이션 마스터를 실행하기 위해 Resource Manager에서 첫 번째 컨테이너를 협상합니다.
  • 클러스터에서 애플리케이션 마스터 실행을 관리하고 실패시 애플리케이션 마스터 컨테이너를 다시 시작하는 서비스를 제공합니다.

에 오는 두 번째 구성 요소 그것은:

노드 관리자

  • Hadoop 클러스터의 개별 노드를 처리하고주어진 노드에서 사용자 작업 및 워크 플로를 관리합니다.
  • Resource Manager에 등록하고 노드의 상태와 함께 하트 비트를 보냅니다.
  • 기본 목표는 리소스 관리자가 할당 한 응용 프로그램 컨테이너를 관리하는 것입니다.
  • Resource Manager로 최신 상태를 유지합니다.
  • 애플리케이션 마스터는 애플리케이션이 실행하기 위해 필요한 모든 것을 포함하는 컨테이너 실행 컨텍스트 (CLC)를 전송하여 노드 관리자로부터 할당 된 컨테이너를 요청합니다. 노드 관리자는 요청 된 컨테이너 프로세스를 생성하고 시작합니다.
  • 개별 컨테이너의 리소스 사용량 (메모리, CPU)을 모니터링합니다.
  • 로그 관리를 수행합니다.
  • 또한 Resource Manager의 지시에 따라 컨테이너를 종료합니다.

그만큼 세 번째 구성 요소 Apache Hadoop YARN의

응용 프로그램 마스터
  • 애플리케이션은 프레임 워크에 제출되는 단일 작업입니다. 이러한 각 애플리케이션에는 프레임 워크 특정 엔티티 인 고유 한 애플리케이션 마스터가 연결되어 있습니다.
  • 클러스터에서 애플리케이션 실행을 조정하고 장애도 관리하는 프로세스입니다.
  • 이 작업은 리소스 관리자에서 리소스를 협상하고 노드 관리자와 협력하여 구성 요소 작업을 실행하고 모니터링하는 것입니다.
  • ResourceManager에서 적절한 리소스 컨테이너를 협상하고 상태를 추적하고 진행 상황을 모니터링합니다.
  • 시작되면 주기적으로 리소스 관리자에 하트 비트를 전송하여 상태를 확인하고 리소스 요구 기록을 업데이트합니다.

그만큼 네 번째 구성 요소 is :

컨테이너
  • 단일 노드에있는 RAM, CPU 코어 및 디스크와 같은 물리적 리소스 모음입니다.
  • YARN 컨테이너는 컨테이너 수명주기 (CLC) 인 컨테이너 시작 컨텍스트에 의해 관리됩니다. 이 레코드에는 환경 변수 맵, 원격으로 액세스 할 수있는 스토리지에 저장된 종속성, 보안 토큰, Node Manager 서비스에 대한 페이로드 및 프로세스 생성에 필요한 명령이 포함됩니다.
  • 특정 호스트에서 특정 양의 리소스 (메모리, CPU 등)를 사용할 수있는 권한을 응용 프로그램에 부여합니다.

YARN에서 신청서 제출

이미지를 참조하고 Hadoop YARN의 애플리케이션 제출과 관련된 단계를 살펴보십시오.

1) 작업 제출

2)애플리케이션 ID 받기

3) 지원서 제출 컨텍스트

4 a) 컨테이너 시작시작하다

b) 애플리케이션 마스터 시작

5) 자원 할당

6 a) 컨테이너

자바에 추가되는 것

b) 시작

7) 실행

Hadoop YARN의 애플리케이션 워크 플로

주어진 이미지를 참조하고 Apache Hadoop YARN의 애플리케이션 워크 플로우와 관련된 다음 단계를 참조하십시오.

  1. 클라이언트가 신청서를 제출
  2. Resource Manager는 컨테이너를 할당하여 Application Manager를 시작합니다.
  3. 응용 프로그램 관리자가 리소스 관리자에 등록
  4. Application Manager는 Resource Manager에서 컨테이너를 요청합니다.
  5. Application Manager가 Node Manager에게 컨테이너를 시작하도록 알립니다.
  6. 컨테이너에서 애플리케이션 코드가 실행 됨
  7. 클라이언트는 Resource Manager / Application Manager에 연락하여 애플리케이션의 상태를 모니터링합니다.
  8. Application Manager가 Resource Manager에 등록 취소됨

이제 Apache Hadoop YARN을 알았으니 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka BigData Hadoop 인증 교육 과정은 학습자가 소매, 소셜 미디어, 항공, 관광, 금융 분야의 실시간 사용 사례를 사용하여 HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume 및 Sqoop의 전문가가 될 수 있도록 도와줍니다.

질문이 있으십니까? 의견란에 언급 해 주시면 연락 드리겠습니다.