クラスタ プロパティ

Dataproc クラスタにインストールされるオープンソース コンポーネントには、多くの構成ファイルが含まれます。たとえば、Apache Spark と Apache Hadoop には XML と書式なしテキストの構成ファイルがいくつか含まれています。Cloud SDKgcloud dataproc clusters create コマンドの ‑‑properties フラグを使用すると、クラスタの作成時に多くの一般的な構成ファイルを変更できます。

クラスタとジョブのプロパティ。Apache Hadoop YARN、HDFS、Spark、その他のプレフィックス付きプロパティは、クラスタの作成時にクラスタレベルで適用されます。これらのプロパティの多くは、gcloud dataproc jobs submit コマンドで --properties フラグを使用して特定のジョブに適用できます。ジョブにプロパティを適用する場合、以下に示す関連ファイル接頭辞は使用されません

例:

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

Spark ジョブの Spark Executor メモリを 4g に設定するには(spark: 接頭辞は省略):

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

properties フラグの仕組み

ファイルやプロパティの更新を容易にするため、gcloud dataproc clusters create --properties フラグは特別な形式を使用して、更新が必要な構成ファイルおよびファイル内のプロパティと値を指定します。

書式設定

--properties フラグには、次の形式のテキスト文字列が必要です。

file_prefix1:property1=value1,file_prefix2:property2=value2,...

注:

  • --propertiesフラグは、よく使用される構成ファイルの特定のセットを変更するために使用します。file_prefix は、定義済みの構成ファイルのセットにマッピングされます。

  • 複数のプロパティを区切るデフォルトの区切り文字はカンマ(,)です。ただし、プロパティ値にカンマが含まれている場合は、プロパティリストの先頭に「^DELIMITER^」を指定して区切り文字を変更する必要があります。

    「#」区切り文字の使用例:

    --properties ^#^file_prefix1:property1=part1,part2#file_prefix2:property2=value2
    
    詳しくは、gcloud トピックのエスケープをご覧ください。

file_prefix ファイル ファイルの用途
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 クラスタの機能をさらに構成するのに使用できます。注: クラスタの作成時に次のクラスタ プロパティが指定されています。クラスタの作成後に指定または更新することはできません。

特性 機能
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.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.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 time 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 に変更されます。

gcloud コマンド

spark-defaults.conf ファイルの spark.master 設定を変更するには、コマンドラインで新しいクラスタを作成するときに次の properties フラグを追加します。
--properties 'spark:spark.master=spark://example.com'
1 つ以上の構成ファイルで複数のプロパティを一度に変更する場合は、区切り文字としてカンマを使用します。各プロパティは完全な file_prefix:property=value 形式で指定する必要があります。たとえば、spark-defaults.conf ファイルの spark.master 設定と hdfs-site.xml ファイルの dfs.hosts 設定を変更するには、クラスタの作成時に次のフラグを使用します。
--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"
}

コンソール

spark-defaults.conf ファイルの spark.master 設定を変更するには:
  1. Cloud Console で、Dataproc の [クラスタの作成] ページを開きます。ページの下部にある [詳細オプション] をクリックして、[クラスタのプロパティ] セクションを表示します。

  2. [+クラスタ プロパティを追加] をクリックし、左側のプルダウン リストで [spark] を選択し、プロパティ フィールドに「spark.master」、値フィールドに設定を追加します。