叢集屬性

安裝在 Cloud Dataproc 叢集上的開放原始碼元件包含許多設定檔。例如,Apache Spark 和 Apache Hadoop 就有幾個 XML 和純文字設定檔。您可能需要時不時地更新或新增這些設定檔。您可以在建立叢集時,於 Cloud SDK 中使用 gcloud dataproc clusters create 指令‑‑properties 標記,修改許多常用的設定檔。

properties 標記的用法

為了讓您能輕鬆更新檔案和屬性,gcloud dataproc clusters create --properties 標記使用特殊的格式來指定應更新的設定檔及檔案中的屬性和值。

格式

--properties 標記的文字字串格式如下:

file_prefix:property=value

--properties 標記只能修改一組特定的常用設定檔。file_prefix 會對應至預先定義的一組設定檔。

file_prefix 檔案 檔案用途
capacity-scheduler capacity-scheduler.xml Hadoop YARN Capacity Scheduler 設定
core core-site.xml Hadoop 一般設定
distcp distcp-default.xml Hadoop Distributed Copy 設定
hadoop-env hadoop-env.sh Hadoop 特定環境變數
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 設定

重要注意事項

  • 有些屬性因為攸關 Cloud Dataproc 叢集的功能所以無法覆寫,並且會被保留下來。如果您嘗試變更保留屬性,將會在建立叢集時收到錯誤訊息。
  • 如要指定多個變更,可以用逗號來分隔。
  • --properties 標記無法修改未顯示在上表中的設定檔。
  • 目前不支援在 Google Cloud Platform 主控台中建立叢集時變更屬性。
  • 對屬性所做的變更將在叢集上的 Daemon 啟動之前套用。
  • 如果指定的屬性存在,將會更新該屬性。如果指定的屬性不存在,則會將它新增至設定檔。

Cloud Dataproc 服務屬性

以下為未包含在上方檔案列表中的其他 Cloud Dataproc 屬性。這些屬性可用於進一步設定 Cloud Dataproc 叢集的功能。

屬性 功能
dataproc:am.primary_only truefalse 將此屬性設為 true 以防止應用程式主要執行個體在 Cloud Dataproc 叢集先佔工作站上執行。附註:此功能僅適用於 Cloud Dataproc 1.2 及更高版本。預設值為 false
dataproc:dataproc.allow.zero.workers truefalse 在 Cloud Dataproc clusters.create API 要求中將此 SoftwareConfig 屬性設為 true 可建立單節點叢集,這會將預設的工作站數量從 2 變更為 0,並將工作站元件放在主要主機上。您也可以透過在 GCP 主控台上或使用 gcloud 指令列工具將工作站數量設為 0 來建立單節點叢集。
dataproc:dataproc.conscrypt.provider.enable truefalse 啟用 (true) 或停用 (false) Conscrypt,決定是否將其設為主要 Java 安全性供應商。附註:Conscrypt 在 Dataproc 1.2 以上版本中預設為啟用,在 Dataproc 1.0/1.1 版本中則預設為停用。
dataproc:dataproc.localssd.mount.enable truefalse 是否將本機 SSD 掛接為 Hadoop/Spark 臨時目錄和 HDFS 資料目錄 (預設值:true)。
dataproc:dataproc.logging.stackdriver.enable truefalse 啟用 (true) 或停用 (false) Stackdriver 記錄功能。
dataproc:dataproc.monitoring.stackdriver.enable truefalse 啟用 (true) 或停用 (false) Stackdriver Monitoring 代理程式
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 網域名稱相同 (但須為大寫)。舉例來說,如果機器名稱為「<機器 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> 含有 KeyStore 檔案中金鑰密碼的 KMS 加密檔案在 Cloud Storage 中的位置。
dataproc:kerberos.keystore.password.uri gs://<dir-path> 含有 KeyStore 密碼的 KMS 加密檔案在 Cloud Storage 中的位置。
dataproc:kerberos.keystore.uri1 gs://<dir-path> 含有叢集節點所使用萬用字元認證和私密金鑰的 KeyStore 檔案在 Cloud Storage 中的位置。
dataproc:kerberos.kms.key.uri KMS key URI 用於解密 projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key 等根密碼的 KMS 金鑰 URI (請參閱金鑰資源 ID 一節)。
dataproc:kerberos.root.principal.password.uri gs://<dir-path> Kerberos 根主體的 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 中的位置。
zeppelin:zeppelin.notebook.gcs.dir gs://<dir-path> Zeppelin 筆記本在 Cloud Storage 中的儲存位置。

1KeyStore 檔案:KeyStore 檔案包含安全資料傳輸層 (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'
您可以透過使用逗號分隔的方式,一次變更一或多個設定檔中的數個屬性。每個屬性都必須以完整的 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.memory 設為 10g,請在叢集建立 JSON 要求的本體中插入下列指令:
"properties": {
  "spark:spark.executor.memory": "10g"
}

主控台

目前不支援在 GCP 主控台中,透過 Cloud Dataproc 的「Create a cluster」(建立叢集) 頁面新增叢集屬性。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Dataproc 說明文件
需要協助嗎?請前往我們的支援網頁