Apache Hadoop YARN、HDFS、Spark、関連プロパティ
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.memory
を 10g
に設定するには、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
設定を変更するには:
- Cloud Console で、Dataproc の [クラスタの作成] ページを開きます。[クラスタのカスタマイズ] パネルをクリックし、[クラスタのプロパティ] セクションまでスクロールします。
- [+ プロパティを追加] をクリックします。 [プレフィックス] リストで [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.beta.secure.multi-tenancy.user.mapping | user-to-service account mappings |
このプロパティは、ユーザーとサービス アカウント間のマッピングのリストを受け取ります。マッピングされたユーザーは、分離されたユーザー ID を使用してインタラクティブなワークロードをクラスタに送信できます(Dataproc サービス アカウントベースの安全なマルチテナンシーをご覧ください)。 |
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 以降が必要です。詳しくは、Dataproc 協同型マルチテナンシーをご覧ください。(デフォルト: 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 |
hcfs に設定した場合、Spark シャッフル データは HDFS に保持されます。詳細については、Dataproc の高度な柔軟性モードをご覧ください。注: 現在、この機能は Dataproc 1.4 と 1.5 でのみ使用できます。 |
dataproc | efm.spark.shuffle | primary-worker または hcfs |
primary-worker に設定した場合、マッパーは(Spark ジョブで使用可能で推奨される)プライマリ ワーカーにデータを書き込みます。hcfs に設定した場合、Spark シャッフル データは HDFS に保持されます。詳細については、Dataproc の高度な柔軟性モードをご覧ください。注: 現在、この機能は Dataproc 1.4 と 1.5 でのみ使用できます。 |
dataproc | job.history.to-gcs.enabled | true または false |
MapReduce と Spark の履歴ファイルを Dataproc の一時バケットで永続化することを許可します(イメージ バージョン 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 |
Dataproc ジョブが /var/log/google-dataproc-job ディレクトリ内の一時ファイルに出力をパイプするように構成します。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> |
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
に変更されます。