当您创建集群时,HDFS 会被用作默认文件系统。您可以通过将 defaultFS 设置为 Cloud Storage 存储分区来替换此行为。修改者 默认情况下,Dataproc 还会创建 Cloud Storage 预演 项目中的 Cloud Storage 临时存储桶,或重复使用现有的 Dataproc 在之前集群中创建的暂存存储分区和临时存储分区 创建请求
暂存存储分区:用于暂存集群作业依赖项、作业驱动程序输出和集群配置文件。还会接收来自 gcloud CLI 的输出 gcloud dataproc clusters diagnose 命令。
临时存储分区:用于存储临时集群和作业数据,例如 Spark 和 MapReduce 历史记录文件。
如果您在创建集群时未指定暂存存储桶或临时存储桶, Dataproc 将 Cloud Storage 位置设在美国、亚洲、 或欧盟(针对集群的暂存存储分区和临时存储分区) 根据部署集群的 Compute Engine 可用区, 然后为每个位置创建和管理这些项目级存储分区。 Dataproc 创建的暂存存储分区和临时存储分区 同一区域的各集群之间共享 Cloud Storage 软删除保留 持续时间设置为 0 秒。
临时存储桶包含临时数据,TTL 为 90 天。 暂存存储桶,可以包含配置数据 多个集群所需的资源和依赖项文件 没有 TTL。不过,您可以将生命周期规则应用于 依赖项文件 (文件扩展名为“.jar”的文件位于暂存存储桶文件夹中) ,以便在依赖项文件不再存在时 集群所需的资源
创建您自己的暂存存储分区和临时存储分区
您也可以指定现有 Cloud Storage 存储分区供 Dataproc 用作集群暂存存储分区和临时存储分区,而非依靠创建默认的暂存存储分区和临时存储分区。
gcloud 命令
使用 --bucket
和/或 --temp-bucket
在终端窗口或 Cloud Shell 中在本地运行 gcloud dataproc clusters create
命令,以指定集群的暂存存储分区和/或临时存储分区。
gcloud dataproc clusters create cluster-name \ --region=region \ --bucket=bucket-name \ --temp-bucket=bucket-name \ other args ...
REST API
在 clusters.create 请求中使用 ClusterConfig.configBucket
和 ClusterConfig.tempBucket
字段指定集群的暂存存储分区和临时存储分区。
控制台
在 Google Cloud 控制台中,打开 Dataproc 创建集群 页面。选择“自定义集群”面板,然后使用“文件存储”字段指定或选择集群的暂存存储分区。
注意:目前,使用 Google Cloud 控制台指定临时存储桶 不受支持。
Dataproc 会将已定义的文件夹结构用于附加到集群的 Cloud Storage 存储分区。Dataproc 还支持将多个集群连接到 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 控制台中列出集群的暂存存储分区和临时存储分区的名称。
控制台
- \查看集群详情(包括集群暂存存储桶的名称), Dataproc 集群 页面。
- 在 Google Cloud 控制台中 Cloud Storage 浏览器 页面上,过滤包含“Dataproc-temp-”的结果。
gcloud 命令
在终端窗口或 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 设为默认文件系统。此操作还会将 Cloud Storage 连接器为所有文件返回报告的权限 core:fs.gs.reported.permissions
设置为 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 ...