クラスタ プロパティ

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'

1 つ以上の構成ファイルで複数のプロパティを一度に変更する場合は、区切り文字としてカンマを使用します。各プロパティは完全な 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 コマンドを開始します。次に示すのは、gcloud dataproc clusters create コマンドのサンプルです。このコマンドは、クラスタ プロパティを --properties spark:spark.executor.memory=10g フラグを使用して設定します。 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 本文が表示された後にコマンドをキャンセルしてください。

Console

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 分散コピー構成
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 MapReduce 構成
mapred-env mapred-env.sh Hadoop MapReduce 固有の環境変数
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 に変更され、ワーカー コンポーネントがマスターホストに配置されます。単一ノードクラスタは、Cloud Console または gcloud コマンドライン ツールを使用して作成することもでき、その際ワーカー数を 0 に設定します。
dataproc dataproc.alpha.master.nvdimm.size.gb 1500-6500 値を設定すると、Intel Optane DC Persistent Memory を使用して Dataproc マスターが作成されます。注: Optane VM はus-central1-fゾーン、n1-highmem-96-aepマシンタイプ、ホワイトリスト登録済みプロジェクトでのみ作成できます。
dataproc: dataproc.alpha.worker.nvdimm.size.gb 1500-6500 値を設定すると、Intel Optane DC Persistent Memory を使用して Dataproc ワーカーが作成されます。注: Optane VM はus-central1-fゾーン、n1-highmem-96-aepマシンタイプ、ホワイトリスト登録済みプロジェクトでのみ作成できます。
dataproc dataproc.conscrypt.provider.enable true または false Conscrypt をプライマリ Java セキュリティ プロバイダとして有効(true)または無効(false)にします。: Conscrypt は、Dataproc 1.2 以降ではデフォルトで有効になっていますが、1.0 / 1.1 では無効になっています。
dataproc dataproc.cooperative.multi-tenancy.user.mapping user-to-service account mappings このプロパティは、ユーザーからサービスへのアカウント マッピングのリストをカンマ区切り形式で受け付けます。このプロパティ セットでクラスタを作成した場合、ユーザーがジョブを送信すると、クラスタは Cloud Storage コネクタを介して Cloud Storage にアクセスする際に、該当するサービス アカウントになりすますことができます。この機能を使用するには、Cloud Storage コネクタのバージョン 2.1.4 以降(デフォルト: empty)が必要です。
dataproc dataproc.localssd.mount.enable true または false ローカル SSD を Hadoop / Spark 一時ディレクトリおよび HDFS データ ディレクトリとしてマウントするかどうか(デフォルト: true)。
dataproc dataproc.logging.stackdriver.enable true または false ロギングを有効(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 モニタリング エージェントを有効(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 の高度な柔軟性モードのプロパティを hcfs に設定すると、Dataproc ノードの削除時に HDFS で MapReduce シャッフル データが保持されます。: この機能は Dataproc 1.4 以降でのみ使用できます。
dataproc efm.spark.shuffle hcfs この Dataproc の高度な柔軟性モードのプロパティを hcfs に設定すると、Dataproc ノードの削除時に HDFS で Spark シャッフル データが保持されます。: 現在、この機能は Dataproc 1.4 でのみ使用できます。
dataproc job.history.to-gcs.enabled true または false MapReduce と Spark の履歴ファイルを Dataproc の一時バケットで永続化することを許可します(イメージ バージョン 1.5 以降の場合のデフォルト: true)。ジョブ履歴ファイルの永続化の場所は、mapreduce.jobhistory.done-dirmapreduce.jobhistory.intermediate-done-dirspark.eventLog.dirspark.history.fs.logDirectory のプロパティから上書きできます。
dataproc jobs.file-backed-output.enable true または false Dataproc ジョブが /var/log/google-dataproc-job ディレクトリ内の一時ファイルに出力をパイプするように構成します。Logging へのジョブドライバ ログの記録を有効にするには、true に設定する必要があります(デフォルト: true)。
dataproc jupyter.listen.all.interfaces true または false セキュリティで保護されていないノートブックサーバー API を介したリモートコード実行のリスクを軽減するため、イメージバージョン 1.3 以降のデフォルト設定は false となっています。この設定は、コンポーネントゲートウェイが有効となっている時に、localhost127.0.0.1)への接続を制限します。このデフォルト設定は、このプロパティを true に設定することでオーバーライドできます。
dataproc jupyter.notebook.gcs.dir gs://<dir-path> Jupyter ノートブックを保存する Cloud Storage 内の場所。
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> KMS 暗号化共有パスワードの Cloud Storage 内の場所。
dataproc kerberos.kdc.db.key.uri gs://<dir-path> KDC データベース マスターキーを含む KMS 暗号化ファイルの Cloud Storage 内の場所。
dataproc kerberos.key.password.uri gs://<dir-path> キーストア ファイル内のキーのパスワードを含む KMS 暗号化ファイルの Cloud Storage 内の場所。
dataproc kerberos.keystore.password.uri gs://<dir-path> キーストアのパスワードを含む KMS 暗号化ファイルの Cloud Storage 内の場所。
dataproc kerberos.keystore.uri1 gs://<dir-path> クラスタノードによって使用されるワイルドカード証明書と秘密鍵を含むキーストア ファイルの Cloud Storage 内の場所。
dataproc kerberos.kms.key.uri KMS key URI root パスワードの復号に使用される KMS 鍵の URI。たとえば、projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key鍵のリソース ID をご覧ください)。
dataproc kerberos.root.principal.password.uri gs://<dir-path> Kerberos root プリンシパルの KMS 暗号化パスワードの Cloud Storage 内の場所。
dataproc kerberos.tgt.lifetime.hours hours チケットを付与するチケットの最大存続時間。
dataproc kerberos.truststore.password.uri gs://<dir-path> トラストストア ファイルに対するパスワードを含む KMS 暗号化ファイルの Cloud Storage 内の場所。
dataproc kerberos.truststore.uri2 gs://<dir-path> 信頼された証明書を含む KMS 暗号化トラストストア ファイルの Cloud Storage 内の場所。
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> Ranger 管理者の KMS 暗号化パスワードが存在する Cloud Storage 内の場所。
dataproc ranger.db.admin.password.uri gs://<dir-path> Ranger データベース管理者の KMS 暗号化パスワードが存在する Cloud Storage 内の場所。
dataproc ranger.cloud-sql.instance.connection.name cloud sql instance connection name Cloud SQL インスタンスの接続名(例: project-id:region:name.
dataproc ranger.cloud-sql.root.password.uri gs://<dir-path> Cloud SQL インスタンスの root ユーザーの KMS 暗号化パスワードが存在するCloud Storage 内の場所。
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 hadoop-hdfs-namenode がポートにバインドされ起動が成功したと判断できるまで、Dataproc 起動スクリプトが待機する時間。認識される最大値は 1,800 秒(30 分)です。
dataproc startup.component.service-binding-timeout.hive-metastore seconds hive-metastore service がポートにバインドされ起動が成功したと判断できるまで、Dataproc 起動スクリプトが 待機する時間。認識される最大値は 1,800 秒(30 分)です。
dataproc startup.component.service-binding-timeout.hive-server2 seconds hive-server2 がポートにバインドされ起動が成功したと判断できるまで、Dataproc 起動スクリプトが 待機する時間。認識される最大値は 1,800 秒(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> Zeppelin ノートブックを保存する Cloud Storage 内の場所。
zeppelin zeppelin.server.addr ip address セキュリティで保護されていないノートブックサーバー API を介したリモートコード実行のリスクを軽減するため、イメージバージョン 1.3 以降のデフォルト設定は 127.0.0.1 となっています。この設定は、コンポーネントゲートウェイが有効となっている時に、localhost への接続を制限します。デフォルトの設定は、たとえばこのプロパティを 0.0.0.0 に設定してすべての接続を許可することで、オーバーライドできます。

1キーストア ファイル: キーストア ファイルには SSL 証明書が含まれています。ファイルの形式は Java KeyStore(JKS)です。VM にコピーされるときに、このファイルの名前は keystore.jks に変更されます。SSL 証明書は、クラスタ内の各ノードに適用されるワイルドカード証明書です。

2トラストストア ファイル: トラストストア ファイルの形式は Java KeyStore(JKS)です。VM にコピーされるときに、このファイルの名前は truststore.jks に変更されます。