优化 Dataproc 集群启动时间
Optimize Dataproc cluster startup time
我正在处理用户提交请求的应用程序,这些请求将作为 spark 作业处理。目前,我们的数据中心有一个非常大的集群来满足组织的需求。我们计划迁移到 GCP,为了降低成本,我们计划迁移到动态集群。由于集群的大小在很大程度上取决于用户 activity 我们正在计划一个完整的自动缩放集群。
问题之一是我们的用户请求受 SLA 约束,请求处理时间约为 10 到 15 分钟。不幸的是,对于动态集群,它又增加了 5 到 6 分钟的时间让集群出现,而且作为自动缩放的一部分添加工作节点也需要很长时间。
尽管我的初始化步骤很少,但作为一种措施,我创建了一个自定义映像,其中包含我的 PySpark 作业所需的预安装库集,并使用该映像启动集群。出于测试目的,我正在创建非常基本的 2 节点集群,这也需要 4 到 6 分钟。
我什至没有安装额外的 "optional-components"。
这是我用于创建图像的命令:
python generate_custom_image.py \
--image-name custom-1-5-1-debina10 \
--family custom-image \
--dataproc-version 1.5.1-debian10 \
--customization-script initialization_scripts_for_image.sh \
--zone europe-west3-b \
--gcs-bucket gs://poc-data-store/custom-image-logs/ \
--disk-size 50 \
--dry-run
是否有任何可以改进 Dataproc 集群启动时间的建议。一项观察发现,Dataproc 启动日志将大部分时间花在卸载组件上:
是否有可能将尽可能多的时间推到镜像准备阶段,减少仅启动服务到集群启动阶段?
这是一个 known GCE issue 具有大引导磁盘的 Debian 10 VM 的启动时间缓慢。此问题是由 GCE VM 启动期间文件系统调整大小缓慢引起的。
GCE 团队正在努力解决这个问题,但还没有预计到达时间。
同时,您有几个解决方法:
- 使用基于 Ubuntu 的 Dataproc 图像
- 使用较小的启动磁盘大小,这将减少启动时间,但不建议这样做,因为它会影响性能,因此您可能需要附加 Local SSDs 来说明这一点。
- 使用 1TB 启动磁盘创建 custom Dataproc image,因此在启动期间不会调整文件系统大小。
Dataproc 异步卸载组件,因此它不会显着影响启动时间。
更新:
GCE issus 已修复,因此默认配置的 Dataproc 集群使用最新的 Debian 10 映像的平均集群创建时间为 90 秒。
我正在处理用户提交请求的应用程序,这些请求将作为 spark 作业处理。目前,我们的数据中心有一个非常大的集群来满足组织的需求。我们计划迁移到 GCP,为了降低成本,我们计划迁移到动态集群。由于集群的大小在很大程度上取决于用户 activity 我们正在计划一个完整的自动缩放集群。
问题之一是我们的用户请求受 SLA 约束,请求处理时间约为 10 到 15 分钟。不幸的是,对于动态集群,它又增加了 5 到 6 分钟的时间让集群出现,而且作为自动缩放的一部分添加工作节点也需要很长时间。
尽管我的初始化步骤很少,但作为一种措施,我创建了一个自定义映像,其中包含我的 PySpark 作业所需的预安装库集,并使用该映像启动集群。出于测试目的,我正在创建非常基本的 2 节点集群,这也需要 4 到 6 分钟。
我什至没有安装额外的 "optional-components"。
这是我用于创建图像的命令:
python generate_custom_image.py \
--image-name custom-1-5-1-debina10 \
--family custom-image \
--dataproc-version 1.5.1-debian10 \
--customization-script initialization_scripts_for_image.sh \
--zone europe-west3-b \
--gcs-bucket gs://poc-data-store/custom-image-logs/ \
--disk-size 50 \
--dry-run
是否有任何可以改进 Dataproc 集群启动时间的建议。一项观察发现,Dataproc 启动日志将大部分时间花在卸载组件上:
是否有可能将尽可能多的时间推到镜像准备阶段,减少仅启动服务到集群启动阶段?
这是一个 known GCE issue 具有大引导磁盘的 Debian 10 VM 的启动时间缓慢。此问题是由 GCE VM 启动期间文件系统调整大小缓慢引起的。
GCE 团队正在努力解决这个问题,但还没有预计到达时间。
同时,您有几个解决方法:
- 使用基于 Ubuntu 的 Dataproc 图像
- 使用较小的启动磁盘大小,这将减少启动时间,但不建议这样做,因为它会影响性能,因此您可能需要附加 Local SSDs 来说明这一点。
- 使用 1TB 启动磁盘创建 custom Dataproc image,因此在启动期间不会调整文件系统大小。
Dataproc 异步卸载组件,因此它不会显着影响启动时间。
更新:
GCE issus 已修复,因此默认配置的 Dataproc 集群使用最新的 Debian 10 映像的平均集群创建时间为 90 秒。