区域端点

Dataproc 支持基于 Compute Engine 地区的单个“全球”端点和区域端点。

全局端点:“全局”端点是一个特殊的多区域命名空间,能够与任何用户指定的 Compute Engine 区域中的 Dataproc 资源进行交互。

区域端点:每个 Dataproc 区域构成一个独立的资源命名空间,该命名空间受到限制,只可将实例部署到相应区域内的 Compute Engine 地区中。具体而言,您可以指定不同的区域(例如“us-east1”或“europe-west1”),以隔离 Dataproc 在用户指定区域内使用的资源(包括虚拟机实例和 Cloud Storage)和元数据存储位置。之所以允许您执行此操作,是因为我们已在每个区域中部署了 Dataproc 的底层基础架构(包括它的控制平面)。区域命名空间与所引用的Dataproc 资源 URI/regions/<region> 细分相对应。

区域端点的好处:

  • 如果您在多个区域中使用 Dataproc,则指定区域端点可以提供更好的区域隔离和保护。
  • 与“全球”多区域命名空间相比,选择区域端点(尤其是根据地理位置)可能会获得更好的性能。
  • 如果您在创建集群时指定了地区端点,则无需在地区内指定区域。Dataproc 自动选择地区展示位置将为您选择地区。

区域性端点语义

区域性端点名称遵循基于 Compute Engine 区域的标准命名约定。例如,美国中部区域的名称为 us-central1,西欧区域的名称为 europe-west1。运行 gcloud compute regions list 命令以查看可用区域的列表。

使用区域端点

gcloud

使用带有 --region 标志的 gcloud 命令行工具指定区域或多区域端点。

gcloud dataproc clusters create cluster-name \
    --region=region \
    other args ...

REST API

clusters.create 请求中使用 region 网址参数指定集群的区域或“全局”多区域端点。必须在请求正文中为全局端点指定 zoneUri 参数。您可以为区域端点指定区域,也可将其留空,以允许 Dataproc Dataproc 自动选择地区展示位置为您的集群选择地区。

gRPC

默认的 gRPC 端点可访问 global 多区域命名空间。要使用区域端点,请使用以下模式将端点配置为客户端传输上的地址:

region-dataproc.googleapis.com

Python (google-cloud-python) 示例

from google.cloud import dataproc_v1
from google.cloud.dataproc_v1.gapic.transports import cluster_controller_grpc_transport

transport = cluster_controller_grpc_transport.ClusterControllerGrpcTransport(
    address='us-central1-dataproc.googleapis.com:443')
client = dataproc_v1.ClusterControllerClient(transport)

project_id = 'my-project'
region = 'us-central1'
cluster = {...}

Java (google-cloud-java) 示例

ClusterControllerSettings settings =
     ClusterControllerSettings.newBuilder()
        .setEndpoint("us-central1-dataproc.googleapis.com:443")
        .build();
 try (ClusterControllerClient clusterControllerClient = ClusterControllerClient.create(settings)) {
   String projectId = "my-project";
   String region = "us-central1";
   Cluster cluster = Cluster.newBuilder().build();
   Cluster response =
       clusterControllerClient.createClusterAsync(projectId, region, cluster).get();
 }

控制台

当您使用 Google Cloud Console 时,可以从创建集群页面指定 Dataproc 区域。

后续步骤