GCP-GKE与Dataproc的火花

时间:2019-01-31 07:54:00

标签: pyspark google-cloud-platform google-cloud-dataproc google-kubernetes-engine

我们的组织最近将其基础架构从AWS迁移到了Google云计算,而且我认为dataproc集群是运行我们现有的Spark作业的不错的解决方案。但是,在比较价格时,我还意识到我可以启动google kubernetes引擎集群并在其中安装spark以在其上运行spark应用程序。

现在我的问题是,“运行gke上的火花”与使用dataproc相比如何?就自动扩展,定价和基础架构而言,哪一个是最佳选择。我已经阅读了有关gke和dataproc的google文档,但是对于使用GKE或dataproc相对于其他方法的优缺点,还没有足够的把握。

任何专家的意见都会非常有帮助。

先谢谢了。

2 个答案:

答案 0 :(得分:5)

DataProc上的Spark已被证明并且已在许多组织中使用,尽管它没有得到完全管理,但是您可以通过GCP api自动创建和删除集群,提交作业等,但是仍然需要管理另一个堆栈。

GKE上的Spark是新事物,Spark从2.4开始就添加了功能以支持Kubernetes,甚至Google都在Link的几天前更新了Kubernetes的预览版。

如果我不得不在Prod环境中运行Jobs,我只会使用DataProc,否则您可以尝试使用Docker并观察其运行情况,但是我认为,仅出于成本考虑,它就需要更多的时间来保持稳定角度来看,使用Docker会更便宜,因为您可以与其他服务共享资源。

答案 1 :(得分:2)

在上述答案中加两分。

  • 我更喜欢DataProc,因为它在托管和支持Spark之外 盒子。没有烦恼。更重要的是,成本得到了优化。你不可以 一直需要集群,您可以将临时集群与 dataproc。
  • 使用GKE,我需要显式丢弃集群并在以下情况下重新创建 必要。需要特别注意。
  • 我无法从GCP获得任何有关数据的直接服务 血统。在这种情况下,我可能将Apache Atlas与 由我自己管理的Spark安装上的Spark-Atlas-Connector。在 在这种情况下,在GKE上运行Spark,所有控件都位于 我自己会做出一个令人信服的选择。