고가용성 모드

Dataproc 클러스터를 만들 때 클러스터의 마스터 인스턴스 수를 지정하여 클러스터를 Hadoop 고가용성(HA) 모드로 전환할 수 있습니다. 마스터 수는 클러스터를 만드는 시점에만 지정할 수 있습니다.

현재 Dataproc은 다음 두 가지 마스터 구성을 지원합니다.

  • 마스터 1개(기본값, HA 아님)
  • 마스터 3개(Hadoop HA)

기본 모드와 Hadoop 고가용성 모드 비교

  • Compute Engine 장애: 드물긴 하지만 예상치 못한 Compute Engine 오류가 발생하는 경우 Dataproc 인스턴스에 머신 재부팅이 발생합니다. Dataproc의 기본 단일 마스터 구성은 해당 경우에 새 작업을 복구하여 계속 처리하도록 설계되었지만 진행 중인 작업은 오류가 발생하면 다시 시도해야 하며 단일 NameNode가 재부팅 시 완전히 복구될 때까지 HDFS에 액세스할 수 없습니다. HA 모드에서 HDFS 고가용성YARN 고가용성은 단일 노드 오류/재부팅이 발생해도 중단 없는 YARN 및 HDFS 작업을 허용하도록 구성됩니다.

  • 작업 드라이버 종료: 성공적으로 실행되는 드라이버 프로그램에 따라 작업의 정확성이 달라지는 경우 실행하는 모든 작업의 드라이버/기본 프로그램은 여전히 잠재적 단일 오류 지점을 나타냅니다. Dataproc 작업 API를 통해 제출된 작업은 '고가용성'으로 간주되지 않고 해당 작업 드라이버 프로그램을 실행하는 마스터 노드에 오류가 발생하면 종료됩니다. 개별 작업이 HA Cloud Dataproc 클러스터를 사용하여 단일 노드 오류에 대비하려면 작업은 1) 동기식 드라이버 프로그램 없이 실행하거나 2) YARN 컨테이너 내에서 드라이버 프로그램을 실행하고 드라이버-프로그램 재시작을 처리하도록 작성해야 합니다. 내결함성을 위해 YARN 컨테이너 내에서 다시 시작 가능한 드라이버 프로그램을 실행하는 방법의 예시는 YARN에서 Spark 실행을 참조하세요.

  • 영역 장애: 모든 Dataproc 클러스터와 마찬가지로 고가용성 클러스터의 모든 노드는 동일한 영역에 있습니다. 영역의 모든 노드에 영향을 미치는 오류가 있는 경우 실패가 완화되지 않습니다.

인스턴스 이름

기본 마스터의 이름은 cluster-name-m으로 지정되고 HA 마스터는 cluster-name-m-0, cluster-name-m-1, cluster-name-m-2로 이름이 지정됩니다.

Apache ZooKeeper

HA Dataproc 클러스터에서 Zookeeper 구성요소는 클러스터 마스터 노드에 자동으로 설치됩니다. 모든 마스터가 ZooKeeper 클러스터에 참여하여 다른 Hadoop 서비스에 대한 자동 장애 조치를 사용 설정합니다.

HDFS

표준 Dataproc 클러스터의 경우:

  • cluster-name-m이 다음을 실행합니다.
    • NameNode
    • 보조 NameNode

고가용성 Dataproc 클러스터의 경우:

  • cluster-name-m-0cluster-name-m-1이 다음을 실행합니다.
    • NameNode
    • ZKFailoverController
  • 모든 마스터가 JournalNode를 실행합니다.
  • 보조 NameNode가 없습니다.

구성요소에 관한 추가 세부정보는 HDFS 고가용성 문서를 참조하세요.

YARN

표준 Dataproc 클러스터의 경우 cluster-name-m이 ResourceManager를 실행합니다.

고가용성 Dataproc 클러스터의 경우 모든 마스터가 ResourceManager를 실행합니다.

구성요소에 관한 추가 세부정보는 YARN 고가용성 문서를 참조하세요.

고가용성 클러스터 만들기

gcloud 명령어

gcloud dataproc clusters create를 사용하여 HA 클러스터를 만들려면 다음 명령어를 실행합니다.
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

REST API

HA 클러스터를 만들려면 clusters.create API를 사용하여 masterConfig.numInstances3으로 설정합니다.

Console

HA 클러스터를 만들려면 Dataproc 클러스터 만들기 페이지의 클러스터 설정 패널에서 클러스터 유형 섹션에서 고가용성(마스터 3, 작업자 N)을 선택합니다.