【问题标题】:GCP Dataproc - Error: Unknown name "optionalComponents" at 'cluster.config': Cannot find fieldGCP Dataproc - 错误:“cluster.config”中的未知名称“optionalComponents”:找不到字段
【发布时间】:2026-01-22 03:10:01
【问题描述】:

我正在尝试使用 YAML 文件中提到的配置创建 dataproc 集群(使用 import):

我一直使用成功的命令:

$ gcloud beta dataproc clusters import $CLUSTER_NAME --region=$REGION 
--source=cluster_conf_file.yaml

后来我尝试使用属性--optional-components添加HABSE组件,它是available optional components的一部分:

$ gcloud beta dataproc clusters import $CLUSTER_NAME --optional-components=HBASE --region=$REGION 
--source=cluster_conf_file.yaml

(参考文档: https://cloud.google.com/dataproc/docs/concepts/components/hbase#installing_the_component)

导致以下错误:

ERROR: (gcloud.beta.dataproc.clusters.import) unrecognized arguments: --optional-components=HBASE 

然后我尝试通过引用this 文档将--optional-components 属性添加为YAML 文件中的optionalComponents(而不是通过命令行)。

示例 YAML:

config:
  endpointConfig:
    enableHttpPortAccess: BOOLEAN_VALUE
  configBucket: BUCKET_NAME
  gceClusterConfig:
    serviceAccount: SERVICE_ACCOUNT
    subnetworkUri: SUBNETWORK_URI
    tags:
      - Tag1
      - TAG2
  optionalComponents:            <---- Attribute causing error
    - HBASE
  softwareConfig:
    imageVersion: IMAGE_VERSION
    properties:
      PROPERTY: VALUE
      .
      .
      .
  masterConfig:
    diskConfig:
      bootDiskSizeGb: SIZE
      bootDiskType: TYPE
    machineTypeUri: TYPE_URI
    numInstances: COUNT

导致以下错误:

ERROR: (gcloud.dataproc.clusters.import) INVALID_ARGUMENT: Invalid JSON payload received. Unknown name "optionalComponents" at 'cluster.config': Cannot find field.
- '@type': type.googleapis.com/google.rpc.BadRequest
  fieldViolations:
  - description: "Invalid JSON payload received. Unknown name \"optionalComponents\"\
      \ at 'cluster.config': Cannot find field."
    field: cluster.config

有没有办法解决这个问题?

【问题讨论】:

    标签: google-cloud-platform yaml gcloud google-cloud-dataproc


    【解决方案1】:

    optionalComponents 应该在config.softwareConfig 之下:

    config:
      ...
      softwareConfig:
        imageVersion: IMAGE_VERSION
        optionalComponents:
        - ZOOKEEPER
        - HBASE
    

    您可以通过首先创建带有可选组件的集群,然后将其导出到 YAML 文件来证明这一点。

    【讨论】: