自定义机器类型

Google Cloud Dataproc 集群是在 Google Compute Engine 实例上构建的。机器类型定义了实例可用的虚拟化硬件资源。Compute Engine 提供了预定义机器类型自定义机器类型。Cloud Dataproc 集群可以对主实例节点和/或工作器节点使用标准类型和自定义类型。

自定义机器类型的用例

自定义机器类型文档中所述,自定义机器类型非常适合以下工作负载:

  • 不适合使用预定义机器类型的工作负载。
  • 需要更高的处理能力或更大的内存、但又不需要更高级别的机器类型所提供的全面升级的工作负载。

示例

例如,假设您的工作负载需要的处理能力比 n1-standard-4 实例提供的能力更强,而下一级别的 n1-standard-8 实例提供的容量太大。借助自定义机器类型,您可以创建将主实例节点和/或工作器节点置于中间范围的 Cloud Dataproc 集群(具有 6 个虚拟 CPU 和 25 GB 内存)。

价格

自定义机器类型价格取决于自定义机器中使用的资源。Dataproc 价格被添加到您使用的计算资源费用中,并且取决于集群中使用的虚拟 CPU 总数。

将自定义机器类型用于 Cloud Dataproc

目前,只有通过 Google Cloud SDK gcloud dataproc 命令,才能使用自定义机器类型创建集群。

首先了解自定义机器类型

在使用自定义机器类型创建集群之前,请查看使用自定义机器类型创建虚拟机实例以了解重要注意事项,包括自定义类型规格和价格。

自定义机器类型使用特殊的 machine type 规格。例如,具有 6 个虚拟 CPU 和 22.5 GB 内存的自定义虚拟机的自定义机器类型规格如下所示:

custom-6-23040

机器类型中的数字对应机器中的虚拟 CPU 数量(在本例中为 6)以及内存量(在本例中为 23040)。内存量的计算方式是以 GB 为单位的内存量乘以 1024。在此示例中,我们将 22.5 (GB) 乘以 1024:

22.5 * 1024 = 23040

遵照 CPU 和内存组合的限制,您可以使用上述语法来指定要用于集群的自定义机器类型。您可以在创建集群时为主实例节点和/或工作器节点设置机器类型。如果同时设置两者,则主实例节点可以使用与工作器节点不同的自定义机器类型。抢占式(次要)工作器的机器类型设置以主要工作器的设置为准,不能单独进行设置(请参阅抢占式节点如何用于 Cloud Dataproc)。

使用自定义机器类型创建 Cloud Dataproc 集群

gcloud 命令

运行带有以下标记的 gcloud dataproc clusters create 命令,以创建具有主实例和/或工作器自定义机器类型的 Cloud Dataproc 集群:
  • --master-machine-type custom-machine-type 标志让您可设置集群中主虚拟机实例(如果创建 HA 集群,则为主实例)所用的自定义机器类型
  • --worker-machine-type custom-machine-type 标志让您可设置集群中工作器虚拟机实例所用的自定义机器类型

示例

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Cloud Dataproc 集群启动后,集群详情将显示在终端窗口中。终端窗口中显示的集群属性的部分示例列表如下:
...
properties:
  distcp:mapreduce.map.java.opts: -Xmx1638m
  distcp:mapreduce.map.memory.mb: '2048'
  distcp:mapreduce.reduce.java.opts: -Xmx4915m
  distcp:mapreduce.reduce.memory.mb: '6144'
  mapred:mapreduce.map.cpu.vcores: '1'
  mapred:mapreduce.map.java.opts: -Xmx1638m
...

REST API

要创建具有自定义机器类型的集群,请在 cluster.create API 请求的 masterConfig 和/或 workerConfig InstanceGroupConfig 中设置 machineTypeUri

示例
POST /v1/projects/my-project-id/regions/global/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "test-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    }
  }
}

Console

创建集群页面创建 Cloud Dataproc 集群时,请点击主实例节点和/或工作器节点面板的“机器类型”部分中的自定义,然后填写核心数量和内存量。Console 标签和帮助文本可帮助您选择有效的自定义机器类型值。

以下屏幕截图显示了主实例节点值和工作器节点值,这些值用于创建一个集群,该集群的每个节点中具有 6 个虚拟 CPU 和 22.5 GB 内存。
点击扩展内存为主实例节点和/或工作器节点提供扩展内存值。

CPU 扩展内存

Cloud Dataproc 支持满足以下条件的自定义机器类型:扩展内存超过每个 vCPU 6.5 GB 内存的限制(请参阅扩展内存价格)。

使用扩展内存

gcloud 命令

要通过 gcloud 命令行创建集群并为该集群配备具有扩展内存的自定义 CPU,请向 ‑‑master-machine-type 和/或 ‑‑worker-machine-type 标记添加 -ext 后缀。

示例

以下 gcloud 命令行示例可创建一个 Cloud Dataproc 集群,该集群的每个节点具有 1 个 CPU 和 50 GB 内存 (50 * 1024 = 51200):

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

REST API

以下来自 Cloud Dataproc REST API clusters.create 请求的示例 JSON 片段在每个节点中指定了 1 个 CPU 和 50 GB 内存 (50 * 1024 = 51200):

...
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "custom-1-51200-ext",
    ...
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "custom-1-51200-ext",
     ...
...

Console

在 Google Cloud Platform (GCP) Console 上的 Cloud Dataproc 创建集群页面中的主实例节点和/或工作器节点部分中自定义机器类型内存时,请点击扩展内存

了解详情

请参阅使用自定义机器类型创建虚拟机实例

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

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