本文档讨论了 Dataproc 最佳实践,这些最佳实践可帮助您在生产环境中的 Dataproc 集群上运行可靠、高效且富有洞见的数据处理作业。
指定集群映像版本
Dataproc 使用映像版本将操作系统、大数据组件和 Google Cloud 连接器捆绑到部署在集群上的软件包中。如果您在创建集群时未指定映像版本,则 Dataproc 会默认使用最新的稳定映像版本。
对于生产环境,请将您的集群与特定 major.minor
Dataproc 映像版本相关联,如以下 gcloud CLI 命令所示。
gcloud dataproc clusters create CLUSTER_NAME \ --region=region \ --image-version=2.0
Dataproc 将 major.minor
解析为最新的次要版本(2.0
解析为 2.0.x
)。注意:如果您需要对集群使用特定的次要版本,可以指定该版本:例如 --image-version=2.0.x
。如需了解详情,请参阅版本控制的工作原理。
Dataproc 预览映像版本
在标准次要映像版本轨道中,Dataproc 映像的新增次要版本在发布之前的 preview
版本中可用。在在生产环境中采用标准次要映像版本之前,您可以使用预览映像针对新的次要映像版本测试和验证您的作业。如需了解详情,请参阅 Dataproc 版本控制。
在必要时使用自定义映像
如果您要向集群中添加依赖项,例如原生 Python 库、安全加固或病毒防护软件,请通过目标次要映像版本轨道中的最新映像创建自定义映像。通过这种方式,您可以在使用自定义映像创建集群时满足依赖项要求。在重新构建自定义映像以更新依赖项要求时,请使用次要映像轨道中最新的可用次要映像版本。
将作业提交到 Dataproc 服务
使用 gcloud CLI 或 Google Cloud 控制台,通过 jobs.submit 调用将作业提交到 Dataproc 服务。通过授予 Dataproc 角色来设置作业和集群权限。使用自定义角色可分离集群访问权限与作业提交权限。
向 Dataproc 服务提交作业的好处:
- 无需复杂的网络设置 - API 可广泛使用
- 易于管理 IAM 权限和角色
- 轻松跟踪作业状态 - 没有 Dataproc 作业元数据会导致结果复杂化。
在生产环境中,运行仅依赖于固定的次要映像版本(例如 --image-version=2.0
)的集群级依赖项的作业。在提交作业时,将依赖项与作业捆绑在一起。将 Uber jar 提交到 Spark 或 MapReduce 是一种常用方法。
- 示例:如果作业 jar 依赖于
args4j
和spark-sql
,其中args4j
特定于作业,spark-sql
是集群级依赖项,请将args4j
捆绑到作业的 Uber jar 中。
控制初始化操作位置
借助初始化操作,您可以在创建 Dataproc 集群时自动运行脚本或安装组件(请参阅 dataproc-initialization-actions GitHub 代码库以了解常见的 Dataproc 初始化操作)。在生产环境中使用集群初始化操作时,请将初始化脚本复制到 Cloud Storage,而不是从公共代码库获取。这样做可以避免运行容易被他人修改的初始化脚本。
监控 Dataproc 版本说明
Dataproc 会定期发布新的次要映像版本。查看或订阅 Dataproc 版本说明,了解最新的 Dataproc 映像版本和其他公告、更改和修复。
查看暂存存储桶以调查故障
查看集群的暂存存储桶,以调查集群和作业错误消息。通常,暂存存储桶 Cloud Storage 位置会显示在错误消息中,如以下示例错误消息中的粗体文本所示:
ERROR: (gcloud.dataproc.clusters.create) Operation ... failed: ... - Initialization action failed. Failed action ... see output in: gs://dataproc-<BUCKETID>-us-central1/google-cloud-dataproc-metainfo/CLUSTERID/<CLUSTER_ID>\dataproc-initialization-script-0_output
使用
gsutil
查看暂存存储桶内容:gsutil cat gs://STAGING_BUCKET
示例输出:+ readonly RANGER_VERSION=1.2.0 ... Ranger admin password not set. Please use metadata flag - default-password
获取支持
Google Cloud 为您的生产 OSS 工作负载提供支持,并通过支持层级帮助您满足业务服务等级协议 (SLA) 要求。此外,Google Cloud 咨询服务可以提供有关您团队的生产部署的最佳实践指导。
如需深入了解
阅读 Google Cloud 博客 Dataproc 最佳实践指南。
观看 YouTube 上的 Democratizing Dataproc(普及 Dataproc)。