集群区域

借助 Managed Service for Apache Spark,您可以指定 Compute Engine 区域(例如 us-east1 或 europe-west1),以确定集群的运行位置。该服务会将资源(包括虚拟机实例、Cloud Storage 和元数据存储)隔离在该区域内的单个可用区中。

创建集群时,您可以选择性地选择可用区,例如 us-east1-a 或 europe-west1-b。如果您省略此参数,Managed Service for Apache Spark 自动选择可用区功能会自动在该区域内选择一个可用区。

地区名称

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

位置和区域端点

Google Cloud API 可以为位置和区域端点提供支持:

  • 位置端点可确保通过专用连接访问时,传输中的数据仍保留在指定位置。

    格式:{location}-{service}.googleapis.com

    示例:us-central-1-dataproc.googleapis.com

  • 区域端点可确保通过专用连接或公共互联网访问时,传输中的数据仍保留在指定位置。

    格式:{service}.{location}.rep.googleapis.com

    示例:dataproc.us-central1.rep.googleapis.com

默认的 Managed Service for Apache Spark 端点是位置端点。如需了解 Managed Service for Apache Spark 对区域端点的支持,请参阅 Managed Service for Apache Spark 版本说明。

创建集群

控制台

在 Google Cloud 控制台的创建集群页面上的定义集群部分的区域字段中,指定 Compute Engine 区域。

Google Cloud CLI

创建集群时,请使用必需的 --region 标志指定区域。

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    other args ...

REST API

在 clusters.create 请求中使用 REGION 网址参数指定集群区域。

gRPC

使用以下模式将客户端传输地址设置为位置端点:

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();
 }

后续步骤