Hadoop Yarn 아키텍처 및 구성 요소란?

게시 됨: 2020-02-10

목차

하둡 YARN 소개

YARN은 Hadoop v2.0의 주요 구성 요소입니다. YARN은 HDFS에 저장된 일괄 처리, 스트림 처리, 대화형 처리 및 그래프 처리를 위한 데이터를 처리하고 실행할 수 있도록 하여 Hadoop을 여는 데 도움이 됩니다. 이런 식으로 MapReduce 이외의 다른 유형의 분산 응용 프로그램을 실행하는 데 도움이 됩니다.

YARN 아키텍처에서 처리 계층은 자원 관리 계층과 분리됩니다. 애플리케이션 관리자와 리소스 관리자 사이에 분할을 만드는 것은 Hadoop 1.0 버전에서 작업 추적기의 책임이었습니다. YARN을 사용하면 HDFS(Hadoop Distributed File System)에 저장된 데이터를 일괄 처리, 스트림 처리, 대화형 처리, 그래프 처리 등과 같은 다양한 데이터 처리 엔진에서 처리하고 실행할 수 있습니다. 따라서 YARN을 사용하면 시스템의 효율성이 높아집니다. 응용 프로그램 처리는 다른 구성 요소를 통해 YARN에서 예약됩니다. 다양한 종류의 리소스도 최적의 활용을 위해 점진적으로 할당됩니다. YARN은 대용량 데이터 처리에 매우 필요한 가용 리소스를 적절하게 사용하는 데 많은 도움이 됩니다.

왜 원사입니까?

MapReduce는 자원 관리 및 처리 기능을 수행합니다. Hadoop v1.0은 MapReduce 버전 1(MRV1)이라고도 합니다. Job Tracker에는 단 하나의 마스터만 있었습니다.

이 프로그램이 학생들의 경력을 어떻게 변화시켰는지 믿을 수 없을 것입니다.

MapReduce 버전 1(MRV1)이라고도 하는 Hadoop 버전 1.0인 이전 버전의 Hadoop에서는 프로세스 및 리소스 관리 작업을 자체적으로 수행하는 데 사용합니다. 모든 것을 담당하는 작업 추적기 모듈이 있습니다. 따라서 애플리케이션에 리소스를 할당하고 수요에 따라 스케줄링을 수행하며 시스템에서 처리 작업을 모니터링하는 것은 단일 마스터입니다. Hadoop 버전 1.0은 작업을 줄이고 작업 추적기라고 하는 여러 하위 프로세스에 맵을 할당합니다. Task Tracker는 또한 주기적으로 프로세스의 진행 상황을 보고합니다. 그러나 주요 문제는 문제가 아니라 모두를 위한 단일 마스터의 설계로 인해 병목 현상이 발생한다는 것입니다. 또한 전산 자원 활용도가 비효율적이었다. 따라서 확장성은 이 버전의 Hadoop에서 문제가 되었습니다. 그러나 밝은 면에서 이 문제는 Yahoo와 Hortonworks가 2012년에 도입한 후속 Hadoop 버전 2.0의 핵심 핵심 구성 요소인 YARN에 의해 ​​해결되었습니다. 이 구호의 기본 아이디어는 단일 마스터 대신 리소스 관리 및 작업 스케줄링에서 MapReduce를 분리하는 것입니다. 따라서 YARN은 이제 작업 일정 및 리소스 관리를 담당합니다.

Hadoop 2.0에서 Application Master와 Resource Manager의 개념은 YARN에 의해 ​​도입되었습니다. 하둡 클러스터 전체에서 리소스 사용률은 리소스 관리자에 의해 모니터링됩니다.

매우 유명해진 YARN의 몇 가지 기능은 다음과 같습니다.

  1. 다중 테넌시: YARN은 일괄 처리 엔진, 스트림 처리 엔진, 대화형 처리 엔진, 그래프 처리 엔진 등과 같은 여러 데이터 처리 엔진에 대한 액세스를 허용했습니다. 이는 회사에 다중 테넌시(multi-tenancy)의 이점을 제공했습니다.
  2. 클러스터 활용: 클러스터는 YARN의 도움으로 Hadoop에서 동적으로 사용되기 때문에 클러스터는 최적화된 방식으로 활용됩니다.
  3. 호환성 : YARN은 기존의 map-reduce 앱을 사용하기 때문에 Hadoop의 첫 번째 버전인 Hadoop 1.0과도 호환됩니다. 따라서 YARN은 Hadoop 1.0에서도 사용할 수 있습니다.
  4. 확장성 : YARN의 Resource Manager에 있는 스케줄러는 수천 개의 클러스터와 노드를 Hadoop에서 관리하고 확장할 수 있습니다.

YARN의 구성 요소

  • 컨테이너:

컨테이너에서는 단일 노드의 디스크, CPU 코어, RAM과 같은 물리적 리소스를 찾을 수 있습니다. 컨테이너 실행 컨텍스트(CLC)는 컨테이너를 호출하는 데 사용됩니다. CLC(컨테이너 시작 컨텍스트)로 알려진 레코드로 유지 관리되는 종속성, 보안 토큰, 환경 변수에 대한 데이터입니다.

  1. 특정 호스트에서 애플리케이션은 CPU 및 메모리에서 지정된 메모리만 사용할 수 있습니다. 이 지정된 메모리 양은 컨테이너가 권한을 부여한 후에만 사용할 수 있습니다.
  2. 컨테이너 시작 컨텍스트는 YARN 컨테이너를 관리하는 데 사용됩니다. 컨테이너 수명 주기(CLC)라고도 합니다. 이 레코드에는 프로세스 생성에 필요한 명령이 저장됩니다. 또한 Node Manager 서비스, 보안 토큰, 종속성, 환경 변수 맵에 대한 페이로드를 저장합니다.
  • 애플리케이션 마스터:

프레임워크에서 단일 작업이 제출되면 이를 애플리케이션이라고 합니다. 애플리케이션 진행 상황 모니터링, 애플리케이션 상태 추적, 리소스 관리자와의 리소스 협상은 애플리케이션 관리자의 책임입니다. 애플리케이션을 실행하는 데 필요한 모든 요구 사항은 CLC(컨테이너 시작 컨텍스트)를 전송하여 수행됩니다. 애플리케이션 마스터는 노드 관리자에게 컨테이너를 요청하여 컨테이너 시작 컨텍스트(CLC)를 게시합니다. 때때로 리소스 관리자는 애플리케이션이 시작된 후 상태 보고서를 받습니다.

  • 노드 관리자:

노드 관리자는 Hadoop 클러스터의 개별 노드를 관리하고 각 특정 노드와 관련된 컨테이너도 관리합니다. 리소스 관리자에 등록되고 각 노드의 상태를 리소스 관리자에게 전송하여 노드 프로세스가 리소스 작업을 완료했는지 여부를 나타냅니다. 기본 목표는 리소스 관리자가 할당한 각 특정 노드 컨테이너를 관리하는 것입니다. 노드 관리자는 애플리케이션 마스터가 요청할 때 컨테이너 프로세스도 생성합니다. 애플리케이션 마스터가 애플리케이션 실행에 필요한 모든 것을 포함하는 CLC(Container Launch Context)에 의해 노드 관리자로부터 첨부된 컨테이너를 보내고 요청할 때. 그런 다음 노드 관리자는 요청된 프로세스 컨테이너를 생성하고 실행합니다. 노드 관리자는 또한 개별 컨테이너의 리소스 사용량을 모니터링하고 리소스 관리자에게 보고하는 책임이 있습니다. 따라서 노드 관리자와 리소스 관리자는 노드 간의 통신을 위해 협력하고 클러스터의 각 노드별 리소스 사용을 관리합니다. 리소스 관리자의 지시에 따라 컨테이너를 종료할 수도 있습니다. 마지막으로 노드 관리자는 로그 관리 시스템에 의해 모든 것을 기록합니다.

특정 노드는 노드 관리자가 처리합니다. 노드 관리자는 노드의 워크플로 및 응용 프로그램을 관리합니다. 로그 관리가 수행되고 Node Manager가 리소스 사용량을 모니터링합니다. 리소스 관리자는 노드 관리자에게 컨테이너를 종료하도록 지시합니다. 애플리케이션 마스터는 노드 관리자에게 컨테이너 프로세스를 시작하도록 요청합니다. 컨테이너 프로세스 생성은 노드 관리자의 책임입니다.

  • 리소스 관리자:

모든 앱의 리소스 관리 및 할당은 리소스 관리자의 책임이며 YARN의 마스터 데몬입니다. 리소스 관리자가 수신한 요청은 해당 노드 관리자에게 전달됩니다. 애플리케이션에 따라 리소스 관리자는 완료를 위해 리소스를 할당합니다.

  1. SLA, 공정성 및 용량 보장과 같은 다양한 제한 사항에 대해 모든 리소스의 사용을 활성 상태로 유지하는 등 클러스터 활용이 최적화됩니다.
  2. 리소스 관리자는 사용 가능한 리소스를 할당합니다.
  3. 리소스 관리자는 클러스터 리소스를 중재합니다.
  4. 요청의 실제 처리는 노드에서 이루어지며 노드 관리자가 이를 관리합니다. 처리 요청이 수신될 때마다 요청을 해당 노드 관리자에게 부분적으로 전송합니다.
  5. 리소스 관리자는 리소스 할당에 대한 최고 권한입니다.

Resource Manager에는 다음과 같은 두 가지 기본 구성 요소가 있습니다.

  • 응용 프로그램 관리자 -

응용 프로그램 관리자는 제출된 작업 또는 응용 프로그램 집합을 관리할 책임이 있습니다. 먼저 제출된 응용 프로그램의 사양을 확인하고 유효성을 검사하고 사용 가능한 리소스가 충분하지 않은 경우 응용 프로그램을 거부할 수 있습니다. 또한 오류 또는 악의적인 클라이언트로 인해 발생할 수 있는 이미 제출된 동일한 ID를 가진 다른 애플리케이션이 존재하지 않도록 합니다. 그런 다음 유효성 검사 후 제출된 애플리케이션을 스케줄러로 전달합니다. 마지막으로 애플리케이션의 상태를 관찰하고 완료된 애플리케이션을 관리하여 일부 Resource Manager의 메모리를 절약합니다. 응용 프로그램 관리자는 완료된 응용 프로그램의 캐시를 유지하고 새로 제출된 응용 프로그램을 위한 공간을 수용하기 위해 오래되고 완성된 응용 프로그램을 제거합니다.

  • 스케줄러 –

자원 가용성 및 응용 프로그램 할당을 기반으로 스케줄러는 작업을 예약합니다. 작업의 실패, 추적 또는 모니터링 후 작업을 다시 시작하지 않는 것과 같이 스케줄러가 수행하는 다른 작업은 없습니다. 다양한 유형의 스케줄러 플러그인은 클러스터 리소스 파티션에 대해 YARN 스케줄러에서 지원하는 Fair 스케줄러 및 용량 스케줄러입니다.

Hadoop YARN에서 응용 프로그램의 워크플로 단계

클라이언트가 신청서를 제출합니다.

  1. Application Manager는 Resource Manager가 Container를 할당함으로써 시작됩니다.
  2. Resource Manager와 Application Manager는 서로 등록합니다.
  3. 애플리케이션 관리자는 리소스 관리자에 대한 컨테이너 협상을 수행합니다.
  4. 노드 관리자는 애플리케이션 관리자로부터 알림을 받은 후 컨테이너를 시작합니다.
  5. 애플리케이션 코드의 실행은 컨테이너에서 수행됩니다.
  6. 응용 프로그램 관리자 또는 리소스 관리자는 클라이언트가 연결한 후 응용 프로그램의 상태를 모니터링합니다.
  7. Application Manager의 등록 취소는 프로세스가 완료된 후 Resource Manager로 수행됩니다.

마무리

빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

미래의 기술 마스터 - 빅 데이터

400시간 이상의 학습. 14개 언어 및 도구. IIIT-B 동문 현황.
IIT Bangalore의 빅 데이터 고급 인증 프로그램