아키텍처 및 서비스 계층 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

아키텍처 및 서비스 계층

Amazon EMR 서비스 아키텍처는 여러 계층으로 구성되며 각 계층은 클러스터에 특정 기능과 기능을 제공합니다. 이 단원에서는 계층과 각 계층의 구성 요소에 대한 개요를 제공합니다.

스토리지

스토리지 계층에는 클러스터와 함께 사용되는 다양한 파일 시스템이 포함됩니다. 다음과 같은 다양한 유형의 스토리지 옵션이 있습니다.

하둡 분산 파일 시스템 () HDFS

하둡 분산 파일 시스템 (HDFS) 은 확장 가능한 하둡용 분산 파일 시스템입니다. HDFS저장된 데이터를 클러스터의 여러 인스턴스에 분산하여 개별 인스턴스에 장애가 발생하더라도 데이터가 손실되지 않도록 여러 인스턴스에 여러 데이터 사본을 저장합니다. HDFS클러스터를 종료할 때 회수되는 임시 스토리지입니다. HDFS MapReduce 처리 중에 중간 결과를 캐싱하거나 임의 I/O가 많은 워크로드에 유용합니다.

자세한 내용은 이 안내서를 참조하거나 Apache Hadoop HDFS웹 사이트의 사용 설명서를 참조하십시오인스턴스 스토리지 옵션 및 동작.

EMR파일 시스템 () EMRFS

Amazon은 EMR 파일 시스템 (EMRFS) 을 사용하여 하둡을 EMR 확장하여 Amazon S3에 저장된 데이터에 마치 파일 시스템처럼 직접 액세스할 수 있는 기능을 추가합니다. HDFS 둘 중 하나 HDFS 또는 Amazon S3를 클러스터의 파일 시스템으로 사용할 수 있습니다. 대부분의 경우 Amazon S3는 입력 및 출력 데이터를 저장하고 중간 결과를 저장하는 데 사용됩니다HDFS.

로컬 파일 시스템

로컬 파일 시스템은 로컬로 연결된 디스크를 참조합니다. 하둡 클러스터를 생성하면 각 노드는 EC2 인스턴스 스토어라고 하는 사전 구성된 사전 연결된 디스크 스토리지 블록과 함께 제공되는 Amazon 인스턴스에서 생성됩니다. 인스턴스 스토어 볼륨의 데이터는 Amazon EC2 인스턴스의 수명 주기 동안만 지속됩니다.

클러스터 리소스 관리

리소스 관리 계층은 클러스터 리소스 관리와 데이터 처리 작업의 일정 계획을 담당합니다.

기본적으로 EMR Amazon은 여러 데이터 처리 프레임워크의 클러스터 리소스를 중앙에서 관리하기 위해 Apache 하둡 2.0에 도입된 구성 요소인 YARN (또 다른 리소스 협상자) 를 사용합니다. 그러나 Amazon에서 제공하는 다른 프레임워크와 애플리케이션은 리소스 YARN 관리자로 사용하지 EMR 않는 경우도 있습니다. EMR또한 Amazon은 각 노드에 YARN 구성 요소를 관리하고 클러스터를 정상 상태로 유지하며 Amazon과 통신하는 에이전트를 두고 있습니다. EMR

스팟 인스턴스는 작업 노드를 실행하는 데 자주 사용되기 때문에 EMR Amazon에는 스팟 인스턴스에서 실행되는 YARN 작업 노드가 종료될 때 작업 실행이 실패하지 않도록 작업을 예약하는 기본 기능이 있습니다. EMRAmazon은 애플리케이션 마스터 프로세스가 코어 노드에서만 실행되도록 허용함으로써 이를 수행합니다. 애플리케이션 마스터 프로세스는 실행 중인 작업을 제어하며, 작업 수명 동안 유지되어야 합니다.

Amazon EMR 릴리스 5.19.0 이상에서는 내장된 YARN노드 레이블 기능을 사용하여 이를 구현합니다. (이전 버전에서는 코드 패치를 사용했습니다.) yarn-sitecapacity-scheduler 구성 분류의 속성은 YARN 용량 스케줄러와 공정한 스케줄러가 노드 레이블을 활용할 수 있도록 기본적으로 구성됩니다. Amazon은 EMR 자동으로 레이블을 사용하여 코어 노드에 CORE 레이블을 지정하고 CORE 레이블이 있는 노드에서만 애플리케이션 마스터가 예약되도록 속성을 설정합니다. yarn-site 및 용량 스케줄러 구성 분류의 관련 속성을 수동으로 수정하거나 관련 XML 파일에서 직접 수정하면 이 기능이 손상되거나 기능이 수정될 수 있습니다.

데이터 처리 프레임워크

데이터 처리 프레임워크 계층은 데이터를 처리하고 분석하는 데 사용되는 엔진입니다. 자체 리소스 관리에서 실행되거나 자체 리소스 관리 기능이 있는 프레임워크가 많이 있습니다. YARN 배치, 대화형, 인 메모리, 스트리밍 등과 같은 다양한 종류의 처리 필요에 맞게 다른 프레임워크를 사용할 수 있습니다. 선택하는 프레임워크는 각 사용 사례에 다릅니다. 이 선택은 처리할 데이터와 상호 작용하는 데 사용되는 계층인 애플리케이션 계층에서 사용 가능한 언어와 인터페이스에 영향을 미칩니다. Amazon에서 사용할 수 있는 주요 처리 EMR 프레임워크는 하둡과 MapReduce 스파크입니다.

하둡 MapReduce

MapReduce Hadoop은 분산 컴퓨팅을 위한 오픈 소스 프로그래밍 모델입니다. 이 모델은 사용자가 Map 및 Reduce 함수를 제공하는 동안 모든 로직을 처리하여 병렬 분산 애플리케이션 쓰기 프로세스를 간소화합니다. Map 함수는 데이터를 중간 결과라고 하는 키/값 페어 세트에 매핑합니다. Reduce 함수는 중간 결과를 조합하고, 추가 알고리즘을 적용해 최종 결과를 산출합니다. Map and Reduce 프로그램을 자동으로 생성하는 Hive와 같은 여러 프레임워크를 사용할 수 있습니다. MapReduce

자세한 내용은 Apache Hadoop Wiki 웹 사이트에서 How map and reduce operations are actually carried out을 참조하세요.

Apache Spark

Spark는 빅 데이터 워크로드를 처리하기 위한 클러스터 프레임워크 및 프로그래밍 모델입니다. MapReduceHadoop과 마찬가지로 Spark는 오픈 소스 분산 처리 시스템이지만 실행 계획에는 방향성 비순환 그래프를 사용하고 데이터셋에는 인메모리 캐싱을 사용합니다. Amazon에서 Spark를 EMR 실행하면 Amazon S3에 있는 데이터에 직접 액세스하는 EMRFS 데 사용할 수 있습니다. Spark는 Spark와 같은 여러 대화형 쿼리 모듈을 지원합니다. SQL

자세한 내용은 Amazon EMR릴리스 가이드의 Amazon EMR 클러스터용 Apache Spark를 참조하십시오.

애플리케이션 및 프로그램

EMRAmazon은 Hive, Pig, Spark Streaming 라이브러리와 같은 다양한 애플리케이션을 지원하여 상위 수준 언어를 사용하여 처리 워크로드를 생성하고, 기계 학습 알고리즘을 활용하고, 스트림 처리 애플리케이션을 만들고, 데이터 웨어하우스를 구축하는 등의 기능을 제공합니다. EMR또한 Amazon은 를 사용하는 YARN 대신 자체 클러스터 관리 기능이 있는 오픈 소스 프로젝트도 지원합니다.

다양한 라이브러리와 언어를 사용하여 Amazon에서 실행하는 애플리케이션과 상호 작용합니다EMR. 예를 들어, 스파크와 함께 자바, 하이브 또는 피그를 사용할 수 MLlib 있으며, 스파크와 GraphX를 스파크와 SQL 함께 MapReduce 사용할 수 있습니다.

자세한 내용은 Amazon EMR 릴리스 가이드를 참조하십시오.