【问题标题】:GCP - spark on GKE vs DataprocGCP - GKE 与 Dataproc 上的火花
【发布时间】:2019-06-24 15:03:46
【问题描述】:
我们的组织最近将其基础架构从 aws 迁移到了谷歌云计算,我认为 dataproc 集群是运行我们现有 spark 作业的一个很好的解决方案。但是在比较价格时,我也意识到我可以启动一个 google kubernetes 引擎集群并在其中安装 spark 以在其上运行 spark 应用程序。
现在我的问题是,如何“在 gke 上运行 spark”和使用 dataproc 进行比较?就自动扩展、定价和基础设施而言,哪一个是最佳选择。我已经阅读了有关 gke 和 dataproc 的 google 文档,但还不足以确定使用 GKE 或 dataproc 的优缺点。
任何专家意见都会非常有帮助。
提前致谢。
【问题讨论】:
标签:
pyspark
google-cloud-platform
google-cloud-dataproc
google-kubernetes-engine
【解决方案1】:
DataProc 上的 Spark 已经过验证,并且已在许多组织中使用,尽管它没有完全托管,但您可以通过 GCP api 自动创建和拆除集群、提交作业等,但它仍然是您必须管理的另一个堆栈。
GKE 上的 Spark 是新事物,Spark 从 2.4 开始添加功能以支持 Kubernetes,甚至 Google 几天前更新了 Kubernetes 的预览版,Link
如果我必须像我们所说的那样在 Prod 环境中运行 Jobs,我会选择 DataProc使用 Docker 会更便宜,因为您可以与其他服务共享资源。
【解决方案2】:
将我的两分钱加到上面的答案中。
- 我更喜欢 DataProc,因为它管理并支持 Spark
盒子。没有杂念。更重要的是,成本优化。你不可以
一直需要集群,你可以拥有临时集群
数据处理。
- 使用 GKE,我需要明确丢弃集群并在何时重新创建
必要的。需要额外注意。
- 我找不到 GCP 提供的有关数据的任何直接服务
血统。在那种情况下,我可能会使用 Apache Atlas
Spark 安装上的 Spark-Atlas-Connector 由我自己管理。在
在这种情况下,在 GKE 上运行 Spark,所有控制权都位于
我自己会做出令人信服的选择。