노드 유형 이해: 프라이머리, 코어, 태스크 노드 - Amazon EMR

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

노드 유형 이해: 프라이머리, 코어, 태스크 노드

이 섹션을 통해 Amazon EMR에서 각 노드 유형이 사용되는 방식과 클러스터 용량 계획의 기초로 사용되는 방식을 이해합니다.

프라이머리 노드

프라이머리 노드는 클러스터를 관리하며 일반적으로 분산 애플리케이션의 프라이머리 구성 요소를 실행합니다. 예를 들어, 기본 노드는 YARN ResourceManager 서비스를 실행하여 애플리케이션의 리소스를 관리합니다. 또한 HDFS NameNode 서비스를 실행하고, 클러스터에 제출된 작업의 상태를 추적하고, 인스턴스 그룹의 상태를 모니터링합니다.

클러스터의 진행 상황을 모니터링하고 애플리케이션과 직접 상호 작용하려는 경우, SSH를 통해 Hadoop 사용자로 프라이머리 노드에 연결하면 됩니다. 자세한 정보는 SSH를 사용하여 프라이머리 노드에 연결을 참조하세요. 프라이머리 노드에 연결하면 Hadoop 로그 파일과 같은 디렉터리 및 파일에 직접 액세스 할 수 있습니다. 자세한 정보는 로그 파일 보기을 참조하세요. 프라이머리 노드에서 실행 중인 웹 사이트로 애플리케이션이 게시하는 사용자 인터페이스를 확인할 수도 있습니다. 자세한 정보는 Amazon EMR 클러스터에 호스팅된 웹 인터페이스 보기을 참조하세요.

참고

Amazon EMR 5.23.0 이상에서는 YARN 리소스 관리자, HDFS NameNode, Spark, Hive, Ganglia와 같은 애플리케이션의 고가용성을 지원하는 세 개의 기본 노드가 있는 클러스터를 시작할 수 있습니다. 이 기능을 사용하면 프라이머리 노드가 더 이상 잠재적 단일 장애 지점이 아닙니다. 프라이머리 노드 중 하나에 장애가 발생할 경우, Amazon EMR이 자동으로 대기 프라이머리 노드로 장애 조치하고 장애가 발생한 프라이머리 노드를 동일한 구성 및 부트스트랩 작업을 갖는 새로운 프라이머리 노드로 교체합니다. 자세한 내용은 프라이머리 노드 계획 및 구성을 참조하세요.

코어 노드

코어 노드는 프라이머리 노드에서 관리합니다. 코어 노드는 데이터 노드 데몬을 실행하여 데이터 스토리지를 하둡 분산 파일 시스템(HDFS)의 일부로서 조정합니다. 또한 코어 노드는 Task Tracker 데몬을 실행하고 설치된 애플리케이션에 필요한 데이터에 대해 다양한 병렬 계산 작업도 수행합니다. 예를 들어 코어 노드는 YARN NodeManager 데몬, 하둡 작업 및 Spark 실행기를 실행합니다. MapReduce

클러스터당 코어 인스턴스 그룹 또는 인스턴스 플릿은 하나만 있지만, 인스턴스 그룹 또는 인스턴스 플릿의 여러 Amazon EC2 인스턴스에서 여러 노드가 실행될 수 있습니다. 인스턴스 그룹을 사용하면 클러스터 실행 중에 Amazon EC2 인스턴스를 추가 및 제거할 수 있습니다. 또한 지표 값을 기반으로 인스턴스를 추가하도록 자동 크기 조정을 설정할 수 있습니다. 인스턴스 그룹 구성을 사용한 Amazon EC2 인스턴스 추가 및 제거에 대한 자세한 내용은 클러스터 조정 사용 섹션을 참조하세요.

인스턴스 플릿을 사용하면 인스턴스 플릿의 대상 용량을 온디맨드 및 스팟에 맞게 적절히 수정하여 인스턴스를 효과적으로 추가 및 제거할 수 있습니다. 대상 용량에 대한 자세한 내용은 인스턴스 플릿 옵션 단원을 참조하십시오.

주의

실행 중인 코어 노드에서 HDFS 데몬을 제거하거나 코어 노드를 종료하면 데이터가 손실될 위험이 있습니다. 스팟 인스턴스를 사용하도록 코어 노드를 구성할 때는 각별히 주의하십시오. 자세한 정보는 스팟 인스턴스는 언제 사용해야 하나요?을 참조하세요.

태스크 노드

작업 노드를 사용하여 데이터에 대한 병렬 계산 작업 (예: Hadoop MapReduce 작업 및 Spark Executor) 을 수행하기 위한 전원을 추가할 수 있습니다. 작업 노드는 데이터 노드 데몬을 실행하지 않으며 HDFS에 데이터를 저장하지도 않습니다. 코어 노드와 마찬가지로, 태스크 인스턴스 플릿에 대한 대상 용량을 수정하거나 Amazon EC2 인스턴스를 기존의 균일한 인스턴스 그룹에 추가하여 클러스터에 태스크 노드를 추가할 수 있습니다.

균일한 인스턴스 그룹 구성에서 태스크 인스턴스 그룹을 총 48개까지 포함할 수 있습니다. 이 방식으로 인스턴스 그룹을 추가하면 온디맨드 인스턴스 및 스팟 인스턴스 등 Amazon EC2 인스턴스 유형 및 요금 옵션을 혼합할 수 있습니다. 따라서 워크로드 요구 사항에 비용 효율적으로 대처할 수 있는 유연성을 얻게 됩니다.

인스턴스 플릿 구성을 사용하는 경우 인스턴스 유형과 구매 옵션을 혼합할 수 있는 기능이 기본으로 제공되므로 태스크 인스턴스 플릿은 하나만 있습니다.

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

Amazon EMR 릴리스 5.19.0 이상에서는 기본 제공되는 YARN 노드 레이블 기능을 사용하여 이를 지원합니다. (이전 버전에서는 코드 패치를 사용했습니다.) yarn-sitecapacity-scheduler 구성 분류의 속성은 기본적으로 구성되어 있으므로 YARN capacity-scheduler 및 fair-scheduler에서 노드 레이블을 활용할 수 있습니다. Amazon EMR은 자동으로 코어 노드에 CORE 레이블을 지정하고, CORE 레이블이 있는 노드에서만 애플리케이션 마스터가 예약되도록 속성을 설정합니다. yarn-site 및 capacity-scheduler 구성 분류에서 해당 속성을 수동으로 수정하거나, 연결된 XML 파일에서 직접 수정하면 이 기능이 작동하지 않거나 변경됩니다.

Amazon EMR 6.x 릴리스 시리즈부터 YARN 노드 레이블 기능은 기본적으로 비활성화되어 있습니다. 애플리케이션 기본 프로세스는 기본적으로 코어 및 태스크 노드 모두에서 실행할 수 있습니다. 다음과 같은 속성을 구성하여 YARN 노드 레이블 기능을 활성화할 수 있습니다.

  • yarn.node-labels.enabled: true

  • yarn.node-labels.am.default-node-label-expression: 'CORE'

특정 속성에 대한 자세한 내용은 태스크 노드 스팟 인스턴스가 종료되어 작업이 실패하지 않도록 하기 위한 Amazon EMR 설정 단원을 참조하십시오.