集群属性

安装在 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 映射到一组预定义的配置文件。

文件前缀 文件 文件用途
capacity-scheduler capacity-scheduler.xml Hadoop YARN 容量调度程序配置
core core-site.xml Hadoop 常规配置
distcp distcp-default.xml Hadoop 分布式复制配置
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 Console 中创建集群时更改属性。
  • 系统会先应用对属性做出的更改,然后再启动集群上的守护进程。
  • 如果指定的属性存在,它将被更新。如果指定的属性不存在,它将被添加到配置文件中。

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 Console 或使用 gcloud 命令行工具创建单节点集群,方法是将工作器数量设置为 0
dataproc:dataproc.conscrypt.provider.enable truefalse 启用 (true) Conscrypt 作为主要 Java 安全提供程序,或将其停用 (false)。注意:默认情况下,Dataproc 1.2 和更高版本中启用了 Conscrypt,但在 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> Cloud Storage 中用于保存 Jupyter 笔记本的位置。
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 中的位置。
zeppelin:zeppelin.notebook.gcs.dir gs://<dir-path> Cloud Storage 中用于保存 Zeppelin 笔记本的位置。

1密钥库文件:密钥库文件包含 SSL 证书。文件应为 Java KeyStore (JKS) 格式。在复制到虚拟机时,将重命名为 keystore.jks。SSL 证书应为适用于集群中每个节点的通配符证书。

2信任库文件:信任库文件应为 Java KeyStore (JKS) 格式。在复制到虚拟机时,将重命名为 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,请在 cluster create JSON 请求正文中插入以下内容:
"properties": {
  "spark:spark.executor.memory": "10g"
}

Console

目前,您无法从 Cloud Dataproc 的“创建集群”GCP Console 页面添加集群属性。
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Dataproc 文档
需要帮助?请访问我们的支持页面