클러스터 속성

Dataproc 클러스터에 설치된 오픈소스 구성요소에는 많은 구성 파일이 포함되어 있습니다. 예를 들어 Apache Spark와 Apache Hadoop에는 XML 및 일반 텍스트 구성 파일이 여러 개 있습니다. gcloud dataproc clusters create 명령어의 ‑‑properties 플래그를 사용하면 클러스터를 만들 때 많은 일반 구성 파일을 수정할 수 있습니다.

형식 지정

gcloud dataproc clusters create --properties 플래그는 다음 문자열 형식을 허용합니다.

file_prefix1:property1=value1,file_prefix2:property2=value2,...
  • file_prefix는 아래 표에 나와 있는 사전 정의된 구성 파일에 매핑되고 property는 파일 내의 속성에 매핑됩니다.

  • 여러 클러스터 속성을 구분하는 데 사용되는 기본 구분 기호는 쉼표(,)입니다. 그러나 속성 값에 쉼표가 포함된 경우 속성 목록 시작 부분에 '^delimiter^'를 지정하여 구분 기호를 변경해야 합니다(자세한 내용은 gcloud 주제 이스케이프 참조).

    • '#' 구분 기호를 사용하는 예시:
      --properties ^#^file_prefix1:property1=part1,part2#file_prefix2:property2=value2
      

예시

gcloud 명령어

spark-defaults.conf 파일에서 spark.master 설정을 변경하려면 다음 gcloud dataproc clusters create --properties 플래그를 추가합니다.

--properties 'spark:spark.master=spark://example.com'

구성 파일이 하나 이상인 경우 쉼표 구분자를 사용하면 여러 속성을 한 번에 변경할 수 있습니다. 각 속성은 file_prefix:property=value 형식으로 지정해야 합니다. 예를 들어 spark-defaults.conf 파일에서 spark.master 설정을 변경하고 hdfs-site.xml 파일에서 dfs.hosts 설정을 변경하려면 클러스터를 만들 때 다음 --properties 플래그를 사용합니다.

--properties 'spark:spark.master=spark://example.com,hdfs:dfs.hosts=/foo/bar/baz'

REST API

spark.executor.memory10g로 설정하려면 clusters.create 요청의 SoftwareConfig 섹션에 다음 properties 설정을 삽입하세요.

"properties": {
  "spark:spark.executor.memory": "10g"
}

Dataproc API 클러스터 REST 요청의 JSON 본문 구성 방법을 확인하는 쉬운 방법은 --log-http 플래그를 사용하여 동등한 gcloud 명령어를 시작하는 것입니다. 다음은 --properties spark:spark.executor.memory=10g 플래그로 클러스터 속성을 설정하는 gcloud dataproc clusters create 명령어의 예시입니다. stdout 로그에 해당 REST 요청 본문이 표시됩니다. properties 스니펫은 아래에 나와 있습니다.

gcloud dataproc clusters create my-cluster \
    --region=region \
    --properties=spark:spark.executor.memory=10g \
    --log-http \
    other args ...

출력:

...
== body start ==
{"clusterName": "my-cluster", "config": {"gceClusterConfig": ...
"masterConfig": {... "softwareConfig": {"properties": {"spark:spark.executor.memory": "10g"}},

... == body end == ...

명령어를 적용하지 않으려면 JSON 본문이 출력에 표시된 후 명령어를 취소해야 합니다.

콘솔

spark-defaults.conf 파일에서 spark.master 설정을 변경하려면 다음 안내를 따르세요.

  1. Cloud Console에서 Dataproc 클러스터 만들기 페이지를 엽니다. 클러스터 속성 섹션을 보려면 페이지 하단의 고급 옵션을 클릭합니다.

  2. + 클러스터 속성 추가를 클릭하고, 왼쪽 드롭다운 목록에서 spark를 선택한 다음 속성 필드에 'spark.master'를, 값 필드에 해당 설정을 추가합니다.

클러스터와 작업 속성 비교

클러스터를 만들 때 Apache Hadoop YARN, HDFS, Spark, 기타 파일 프리픽스 속성은 클러스터 수준에서 적용됩니다. 이러한 속성 중 다수는 특정 작업에 적용될 수도 있습니다. 작업에 속성을 적용할 때 파일 프리픽스는 사용되지 않습니다.

예:

Spark 작업의 경우 Spark 실행자 메모리를 4g로 설정합니다(spark: 프리픽스 생략).

gcloud dataproc jobs submit spark \
    --region=region \
    --properties=spark.executor.memory=4g \
    ... other args ...

파일 프리픽스가 있는 속성 표

파일 프리픽스 파일 파일 용도
capacity-scheduler capacity-scheduler.xml Hadoop YARN 커패시티 스케줄러 구성
core core-site.xml Hadoop 일반 구성
distcp distcp-default.xml Hadoop Distributed Copy 구성
hadoop-env hadoop-env.sh Hadoop 관련 환경 변수
hbase hbase-site.xml HBase 구성
hdfs hdfs-site.xml Hadoop HDFS 구성
hive hive-site.xml Hive 구성
mapred mapred-site.xml Hadoop 맵리듀스 구성
mapred-env mapred-env.sh Hadoop 맵리듀스 관련 환경 변수
pig pig.properties Pig 구성
presto config.properties Presto 구성
presto-jvm jvm.config Presto 관련 JVM 구성
spark spark-defaults.conf Spark 구성
spark-env spark-env.sh Spark 관련 환경 변수
yarn yarn-site.xml Hadoop YARN 구성
yarn-env yarn-env.sh Hadoop YARN 관련 환경 변수
zeppelin zeppelin-site.xml Zeppelin 구성
zeppelin-env zeppelin-env.sh Zeppelin 관련 환경 변수(선택사항 구성요소만 해당)
zookeeper zoo.cfg Zookeeper 구성

참고

  • 일부 속성은 예약되어 있으며 Dataproc 클러스터의 기능에 영향을 주므로 재정의할 수 없습니다. 예약된 속성을 변경하려는 경우 클러스터를 만들 때 오류 메시지가 표시됩니다.
  • 변경사항이 여러 개인 경우 쉼표를 사용하여 구분합니다.
  • --properties 플래그는 위에 표시되지 않은 구성 파일을 수정할 수 없습니다.
  • 속성 변경사항은 클러스터에서 데몬이 시작되기 에 적용됩니다.
  • 지정된 속성이 있는 경우에는 업데이트되고, 지정된 속성이 없으면 구성 파일에 추가됩니다.

Dataproc 서비스 속성

아래 나열된 속성은 Dataproc에 적용됩니다. 이러한 속성은 Dataproc 클러스터의 기능을 추가적으로 구성하는 데 사용할 수 있습니다. 이러한 클러스터 속성은 클러스터를 만들 때 지정됩니다. 클러스터를 만든 후에는 이러한 속성을 지정하거나 업데이트할 수 없습니다.

형식 지정

gcloud dataproc clusters create --properties 플래그는 다음 문자열 형식을 허용합니다.

property_prefix1:property1=value1,property_prefix2:property2=value2,...
  • 여러 클러스터 속성을 구분하는 데 사용되는 기본 구분 기호는 쉼표(,)입니다. 그러나 속성 값에 쉼표가 포함된 경우 속성 목록 시작 부분에 '^delimiter^'를 지정하여 구분 기호를 변경해야 합니다(자세한 내용은 gcloud 주제 이스케이프 참조).

    • '#' 구분 기호를 사용하는 예시:
      --properties ^#^property_prefix1:property1=part1,part2#property_prefix2:property2=value2
      

예:

클러스터를 만들고 향상된 유연성 모드를 Spark 기본 작업자 셔플로 설정합니다.

gcloud dataproc jobs submit spark \
    --region=region \
    --properties=dataproc:efm.spark.shuffle=primary-worker \
    ... other args ...

Dataproc 서비스 속성 표

속성 프리픽스 속성 설명
dataproc am.primary_only true 또는 false 이 속성을 true로 설정하여 Dataproc 클러스터 선점형 작업자에서 애플리케이션 마스터가 실행되지 못하게 합니다. 참고: 이 기능은 Dataproc 1.2 이상에서만 사용이 가능하며, 기본값은 false입니다.
dataproc dataproc.allow.zero.workers true 또는 false Dataproc clusters.create API 요청에서 이 SoftwareConfig 속성을 true로 설정하여 단일 노드 클러스터를 만듭니다. 이렇게 하면 기본 작업자 수가 2에서 0으로 변경되고 마스터 호스트에 작업자 구성요소가 배치됩니다. 단일 노드 클러스터는 작업자 수를 0으로 설정하여 Cloud Console에서 만들거나 gcloud 명령줄 도구로도 만들 수도 있습니다.
dataproc dataproc.alpha.master.nvdimm.size.gb 1500-6500 값을 설정하면 Intel Optane DC 영구 메모리를 사용하는 Dataproc 마스터가 생성됩니다. 참고: Optane VM은 us-central1-f 영역에서 허용된 프로젝트 아래에 n1-highmem-96-aep 머신 유형으로만 생성됩니다.
dataproc: dataproc.alpha.worker.nvdimm.size.gb 1500-6500 값을 설정하면 Intel Optane DC 영구 메모리를 사용하는 Dataproc 작업자가 생성됩니다. 참고: Optane VM은 us-central1-f 영역에서 허용된 프로젝트 아래에 n1-highmem-96-aep 머신 유형으로만 생성됩니다.
dataproc dataproc.conscrypt.provider.enable true 또는 false Conscrypt를 기본 자바 보안 공급업체로 사용 설정(true)하거나 사용 중지(false)합니다. 참고: Conscrypt는 Dataproc 1.2 이상에서는 기본적으로 사용 설정되어 있지만 1.0/1.1에서는 사용 중지되어 있습니다.
dataproc dataproc.localssd.mount.enable true 또는 false 로컬 SSD를 Hadoop/Spark 임시 디렉터리 및 HDFS 데이터 디렉터리(기본값: true)로 마운트하거나 마운트하지 않습니다.
dataproc dataproc.logging.stackdriver.enable true 또는 false Logging을 사용 설정(true) 또는 사용 중지(false)합니다(기본값: true).
dataproc dataproc.logging.stackdriver.job.driver.enable true 또는 false Logging에서 Dataproc 작업 드라이버 로그를 사용 설정(true)하거나 사용 중지(false)합니다. 기본값은 false입니다.
dataproc dataproc.logging.stackdriver.job.yarn.container.enable true 또는 false Logging에서 YARN 컨테이너 로그를 사용 설정(true)하거나 사용 중지(false)합니다. 기본값은 false입니다.
dataproc dataproc.monitoring.stackdriver.enable true 또는 false Monitoring 에이전트를 사용 설정(true) 또는 사용 중지(false)합니다.
dataproc dataproc.scheduler.driver-size-mb number 클러스터가 실행할 최대 동시 작업 수를 결정하는 평균 드라이버 메모리 공간. 기본값은 1 GB입니다. Spark 작업에는 더 작은 값(예: 256)이 적합할 수 있습니다.
dataproc dataproc.worker.custom.init.actions.mode RUN_BEFORE_SERVICES (기본값: 사용 안함). 이 플래그를 지정하면 클러스터 생성 중에 기본 작업자 VM이 처음 부팅될 때 노드 관리자와 데이터 노드 데몬이 시작되기 전에 초기화 작업이 실행됩니다. 초기화 작업 — 중요 고려사항 및 가이드라인을 참조하세요.
dataproc efm.mapreduce.shuffle hcfs Dataproc 노드가 삭제될 때 HDFS에서 맵리듀스 셔플 데이터를 보존하려면 이 Dataproc 고유연성 모드 속성을 hcfs로 설정하세요. 참고: 이 기능은 Dataproc 1.4 이상에서만 사용할 수 있습니다.
dataproc efm.spark.shuffle hcfs Dataproc 노드가 제거될 때 HDFS에서 Spark 셔플 데이터를 보존하려면 이 Dataproc 고유연성 모드 속성을 hcfs로 설정하세요. 참고: 현재 이 기능은 Dataproc 1.4에서만 사용할 수 있습니다.
dataproc job.history.to-gcs.enabled true 또는 false Dataproc 임시 버킷에 대해 영구적인 맵리듀스 및 Spark 기록 파일을 허용합니다(기본값: 이미지 버전 1.5+의 경우 true). 사용자는 mapreduce.jobhistory.done-dir, mapreduce.jobhistory.intermediate-done-dir, spark.eventLog.dir, spark.history.fs.logDirectory 속성을 통해 작업 기록 파일 영구 위치를 덮어쓸 수 있습니다.
dataproc jobs.file-backed-output.enable true 또는 false 출력을 /var/log/google-dataproc-job 디렉터리에 있는 임시 파일로 보내도록 Dataproc 작업을 구성합니다. Logging에서 작업 드라이버 로깅을 사용 설정하려면 true로 설정해야 합니다. 기본값은 true입니다.
dataproc jupyter.listen.all.interfaces true 또는 false 보안되지 않은 메모장 서버 API에 대한 원격 코드 실행 위험을 줄이려면 이미지 버전 1.3 이상인 경우 기본 설정은 false로, 구성요소 게이트웨이가 사용 설정된 경우 localhost(127.0.0.1)으로 연결을 제한합니다. 이 속성을 true로 설정하면 모든 연결을 허용하도록 이 기본값 설정을 재정의할 수 있습니다.
dataproc jupyter.notebook.gcs.dir gs://<dir-path> Cloud Storage 내에서 Jupyter 노트북을 저장할 위치입니다.
dataproc kerberos.beta.automatic-config.enable true 또는 false true로 설정하면 사용자는 --kerberos-root-principal-password--kerberos-kms-key-uri 플래그로 Kerberos 루트 주 비밀번호를 지정할 수 없습니다(기본값: false). 자세한 내용은 Kerberos를 통한 Hadoop 보안 모드 사용 설정을 참조하세요.
dataproc kerberos.cross-realm-trust.admin-server hostname/address 원격 관리 서버의 호스트 이름/주소입니다(종종 KDC 서버와 동일).
dataproc kerberos.cross-realm-trust.kdc hostname/address 원격 KDC의 호스트 이름/주소입니다.
dataproc kerberos.cross-realm-trust.realm realm name 영역 이름은 대문자 ASCII 문자열로 구성될 수 있습니다. 일반적으로 영역 이름은 DNS 도메인 이름과 동일합니다(대문자). 예를 들어 머신 이름이 'machine-id.example.west-coast.mycompany.com'인 경우 연결된 렐름을 'EXAMPLE.WEST-COAST.MYCOMPANY.COM'으로 지정할 수 있습니다.
dataproc kerberos.cross-realm-trust.shared-password.uri gs://<dir-path> Cloud Storage 내에서 KMS로 암호화된 공유 비밀번호의 위치입니다.
dataproc kerberos.kdc.db.key.uri gs://<dir-path> Cloud Storage 내에서 KDC 데이터베이스 마스터 키가 포함된 KMS로 암호화된 파일의 위치입니다.
dataproc kerberos.key.password.uri gs://<dir-path> Cloud Storage 내에서 keystore 파일에 있는 키의 비밀번호가 포함된 KMS로 암호화된 파일의 위치입니다.
dataproc kerberos.keystore.password.uri gs://<dir-path> Cloud Storage 내에서 keystore 비밀번호가 포함된 KMS로 암호화된 파일의 위치입니다.
dataproc kerberos.keystore.uri1 gs://<dir-path> Cloud Storage 내에서 와일드카드 인증서와 클러스터 노드에서 사용하는 비공개 키가 포함된 keystore 파일의 위치입니다.
dataproc kerberos.kms.key.uri KMS key URI 루트 비밀번호를 복호화하는 데 사용되는 KMS 키의 URI입니다. 예를 들면 projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key입니다(키 리소스 ID 참조).
dataproc kerberos.root.principal.password.uri gs://<dir-path> Cloud Storage 내에서 Kerberos 루트 주 구성원에 대해 KMS로 암호화된 비밀번호의 위치입니다.
dataproc kerberos.tgt.lifetime.hours hours 티켓 증명 티켓의 최대 수명입니다.
dataproc kerberos.truststore.password.uri gs://<dir-path> Cloud Storage 내에서 truststore 파일에 대한 비밀번호가 포함된 KMS로 암호화된 파일의 위치입니다.
dataproc kerberos.truststore.uri2 gs://<dir-path> Cloud Storage 내에서 트러스트 인증서가 포함된 KMS로 암호화된 트러스트 저장소 파일의 위치입니다.
dataproc ranger.kms.key.uri KMS key URI Ranger 관리자 사용자 암호를 복호화하는 데 사용되는 KMS 키의 URI입니다. 예를 들면 projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key입니다(키 리소스 ID 참조).
dataproc ranger.admin.password.uri gs://<dir-path> Cloud Storage에서 Ranger 관리자 사용자의 KMS로 암호화된 암호의 위치입니다.
dataproc ranger.db.admin.password.uri gs://<dir-path> Cloud Storage에서 Ranger 데이터베이스 관리자 사용자에 대한 KMS로 암호화된 암호의 위치입니다.
dataproc ranger.cloud-sql.instance.connection.name cloud sql instance connection time Cloud SQL 인스턴스의 연결 시간입니다(예시: project-id:region:name.).
dataproc ranger.cloud-sql.root.password.uri gs://<dir-path> Cloud Storage에서 Cloud SQL 인스턴스의 루트 사용자에 대해 KMS로 암호화된 암호의 위치입니다.
dataproc ranger.cloud-sql.use-private-ip true 또는 false 클러스터 인스턴스와 Cloud SQL 인스턴스 사이의 커뮤니케이션에 비공개 IP를 사용해야 하는지 여부입니다(기본값은 false).
dataproc solr.gcs.path gs://<dir-path> Solr 홈 디렉터리로 사용되는 Cloud Storage 경로입니다.
dataproc startup.component.service-binding-timeout.hadoop-hdfs-namenode seconds Dataproc 시작 스크립트의 시작 성공 여부를 결정하기 전에 hadoop-hdfs-namenode가 포트에 바인딩될 때까지 대기하는 시간입니다. 최대 인식 값은 1800초(30분)입니다.
dataproc startup.component.service-binding-timeout.hive-metastore seconds Dataproc 시작 스크립트의 시작 성공 여부를 결정하기 전에 hive-metastore 서비스가 포트에 바인딩될 때까지 대기하는 시간입니다. 최대 인식 값은 1800초(30분)입니다.
dataproc startup.component.service-binding-timeout.hive-server2 seconds Dataproc 시작 스크립트의 시작 성공 여부를 결정하기 전에 hive-server2가 포트에 바인딩될 때까지 대기하는 시간입니다. 최대 인식 값은 1800초(30분)입니다.
dataproc yarn.log-aggregation.enabled true 또는 false Dataproc 임시 버킷에 대한 YARN 로그 집계 켜기를 허용(true)합니다. 버킷 이름은 dataproc-temp-<REGION>-<PROJECT_NUMBER>-<RANDOM_STRING> 형식입니다. (기본값: 이미지 버전 1.5+의 경우 true). 사용자는 또한 yarn.nodemanager.remote-app-log-dir YARN 속성 덮어쓰기로 집계된 YARN 로그 위치를 설정할 수 있습니다.
knox gateway.host ip address 보안되지 않은 메모장 서버 API에 대한 원격 코드 실행 위험을 줄이려면 이미지 버전 1.3 이상인 경우 기본 설정은 127.0.0.1로, 구성요소 게이트웨이가 사용 설정된 경우 localhost으로 연결을 제한합니다. 예를 들어 이 속성을 0.0.0.0로 설정하면 모든 연결을 허용하도록 이 기본값 설정을 재정의할 수 있습니다.
zeppelin zeppelin.notebook.gcs.dir gs://<dir-path> Cloud Storage 내에서 Zeppelin 노트북을 저장할 위치입니다.
zeppelin zeppelin.server.addr ip address 보안되지 않은 메모장 서버 API에 대한 원격 코드 실행 위험을 줄이려면 이미지 버전 1.3 이상인 경우 기본 설정은 127.0.0.1로, 구성요소 게이트웨이가 사용 설정된 경우 localhost으로 연결을 제한합니다. 예를 들어 이 속성을 0.0.0.0로 설정하면 모든 연결을 허용하도록 이 기본값 설정을 재정의할 수 있습니다.

1키 저장소 파일: 키 저장소 파일에는 SSL 인증서가 있습니다. 이는 자바 KeyStore(JKS) 형식이어야 합니다. VM에 복사하면 이름이 keystore.jks로 변경됩니다. SSL 인증서는 클러스터의 각 노드에 적용되는 와일드카드 인증서여야 합니다.

2Truststore 파일: truststore 파일은 자바 KeyStore(JKS) 형식이어야 합니다. VM에 복사하면 이름이 truststore.jks로 변경됩니다.