Managed Service for Apache Spark 临时存储分区和临时存储分区

当您创建集群时,HDFS 会被用作默认文件系统。您可以通过将 defaultFS 设置为 Cloud Storage 存储桶来 替换此行为。默认情况下,Managed Service for Apache Spark 还会在您的项目中创建一个 Cloud Storage 暂存存储桶和 Cloud Storage 临时存储桶,或者重复使用来自之前集群创建请求的现有 Managed Service for Apache Spark 创建的暂存和临时存储桶。

  • 暂存存储桶:用于暂存集群作业依赖项、 作业驱动程序输出、 和集群配置文件。此外,它还会接收 快照诊断数据收集的输出。

  • 临时存储分区:用于存储临时集群和作业数据,例如 Spark 和 MapReduce 历史记录文件。 此外,它还会存储在集群生命周期内收集的 检查点诊断数据

如果您在创建集群时未指定暂存或临时存储桶, Managed Service for Apache Spark 会根据集群部署的 Compute Engine 可用区为集群的暂存和临时存储桶设置一个美国、亚洲、 或欧洲的 Cloud Storage 位置, 然后创建和管理这些基于位置的项目级存储桶。 同一区域内的各集群共用 Managed Service for Apache Spark 创建的暂存和临时存储分区,并且创建时 Cloud Storage 软删除保留时长设置为 0 秒。如果您指定了自己的暂存存储分区和临时存储分区,请考虑调整软删除保留时长,以减少软删除对象产生的存储费用。

临时存储桶包含临时数据,其 TTL 为 90 天。暂存存储桶(可包含多个集群所需的配置数据和依赖项文件)没有 TTL。不过,您可以将生命周期规则应用于 依赖项文件 (位于暂存存储桶文件夹中的文件,文件扩展名为“.jar”), 以便在集群不再需要依赖项文件时安排移除这些文件。

创建您自己的暂存存储分区和临时存储分区

您也可以指定现有 Cloud Storage 存储桶供 Managed Service for Apache Spark 用作集群暂存存储桶和临时存储桶,而非依靠创建默认的暂存存储桶和临时存储桶。

Google Cloud 控制台

如需指定或选择集群暂存存储桶,请执行以下操作:

  1. 打开创建集群 页面。
  2. 点击其他配置 以展开该部分。
  3. 修改自定义及其他
  4. 在打开的面板中的 Cloud Storage 暂存存储桶 部分,指定一个存储桶。

注意:不支持使用 Google Cloud 控制台 指定临时存储桶。

gcloud CLI

在终端窗口或 Cloud Shell 中在本地运行 gcloud dataproc clusters create 命令,并使用 --bucket 和/或 --temp-bucket 标志,以指定集群的暂存存储桶和/或临时存储桶。

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

REST API

clusters.create 请求中使用 ClusterConfig.configBucketClusterConfig.tempBucket 字段指定集群的暂存存储分区和临时存储分区。

Managed Service for Apache Spark 会将已定义的文件夹结构用于附加到集群的 Cloud Storage 存储桶,并且还支持将多个集群附加到一个存储桶。用于在 Cloud Storage 中保存作业驱动程序输出的文件夹结构如下:

cloud-storage-bucket-name
  - google-cloud-dataproc-metainfo
    - list of cluster IDs
        - list of job IDs
          - list of output logs for a job

您可以使用 gcloud 命令行工具、Dataproc API 或 Google Cloud 控制台列出集群的暂存和临时存储分区的名称。

Google Cloud 控制台

  • 您可以在 Google Cloud 控制台的 “集群” 页面上查看集群详细信息,包括集群暂存存储桶的名称。
  • 在 Google Cloud 控制台 Cloud Storage 浏览器 页面上,过滤包含“dataproc-temp-”的结果。

gcloud CLI

在终端窗口或 Cloud Shell中本地运行 gcloud dataproc clusters describe 命令。 输出中会列出与集群关联的暂存存储分区和临时存储分区。

gcloud dataproc clusters describe cluster-name \
    --region=region \
...
clusterName: cluster-name
clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec ...
config:
    configBucket: dataproc-...
    ...
    tempBucket: dataproc-temp...

REST API

调用 clusters.get 可列出集群详细信息,包括集群暂存存储分区和临时存储分区的名称。

{
 "projectId": "vigilant-sunup-163401",
 "clusterName": "cluster-name",
 "config": {
  "configBucket": "dataproc-...",
...
  "tempBucket": "dataproc-temp-...",
}

defaultFS

您可以将 core:fs.defaultFS 设置为 Cloud Storage 中的存储分区位置 (gs://defaultFS-bucket-name),以将 Cloud Storage 设为默认文件系统。此操作还会将 core:fs.gs.reported.permissions(Cloud Storage 连接器针对所有文件返回的报告权限)设置为 777

如果您未将 Cloud Storage 设置为默认文件系统,则系统会使用 HDFS,core:fs.gs.reported.permissions 属性将返回 700(默认值)。

gcloud dataproc clusters create cluster-name \
    --properties=core:fs.defaultFS=gs://defaultFS-bucket-name \
    --region=region \
    --bucket=staging-bucket-name \
    --temp-bucket=temp-bucket-name \
    other args ...