小编Sri*_*ill的帖子

优化 Dataproc 集群启动时间

我正在开发一个用户提交请求的应用程序,这些请求将作为 Spark 作业进行处理。目前,我们的数据中心有一个非常大的集群,可以满足组织的需求。我们计划迁移到 GCP,为了降低成本,我们计划迁移到动态集群。由于集群的大小在很大程度上取决于用户活动,我们正在计划一个完整的自动缩放集群。

问题之一是我们的用户请求受 SLA 约束,请求处理时间约为 10 到 15 分钟。不幸的是,动态集群需要额外 5 到 6 分钟才能启动集群,并且添加工作节点作为自动缩放的一部分也需要很长时间。

尽管我的初始化步骤很少,但作为一种措施,我创建了一个自定义映像,其中包含 PySpark 作业所需的预安装库集,并使用该映像启动集群。出于测试目的,我正在创建非常基本的 2 节点集群,这也需要 4 到 6 分钟。

我什至没有安装额外的“可选组件”。

这是我用于创建图像的命令:

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
Run Code Online (Sandbox Code Playgroud)

有什么建议可以改善 Dataproc 集群的启动时间。一项观察发现,Dataproc 启动日志花费大量时间在卸载组件上:在此处输入图片说明

是否有可能将尽可能多的推送到映像准备阶段,将服务的启动减少到集群启动阶段?

google-compute-engine google-cloud-platform google-cloud-dataproc

1
推荐指数
1
解决办法
561
查看次数