8

有没有办法暂停 Dataproc 集群,这样当我没有主动运行 spark-shell 或 spark-submit 作业时就不会被收费?此链接上的集群管理说明:https ://cloud.google.com/sdk/gcloud/reference/beta/dataproc/clusters/

仅显示如何销毁集群,但我已经安装了例如 spark cassandra 连接器 API。除了创建一个我每次都需要安装的图像之外,我是唯一的选择吗?

4

1 回答 1

14

一般来说,最好的做法是将用于自定义集群的步骤提炼成一些设置脚本,然后使用 Dataproc 的初始化操作在集群部署期间轻松自动执行安装。

这样,如果您想在多个并发 Dataproc 集群上执行相同的设置,或者想要更改机器类型,或者接收 Dataproc 的次次要版本错误修复,您可以轻松地重现自定义,而无需手动参与偶尔发布。

目前确实没有官方支持的暂停 Dataproc 集群的方法,这在很大程度上仅仅是因为能够进行可重复的集群部署以及下面列出的其他几个考虑因素,这意味着 99% 的时间最好使用初始化操作自定义就地暂停集群。也就是说,可能存在短期黑客攻击,例如进入Google Compute Engine 页面,选择属于您要暂停的 Dataproc 集群的实例,然后单击“停止”而不删除它们。

Compute Engine 每小时费用和 Dataproc 的每 vCPU 费用仅在底层实例运行时产生,因此当您手动“停止”实例时,尽管 Dataproc 仍在列出,但您不会产生 Dataproc 或 Compute Engine 的实例小时费用集群为“RUNNING”,尽管如果您转到 Dataproc 集群摘要页面的“VM Instances”选项卡,您会看到警告。

然后,您应该能够从Google Compute Engine 页面单击“开始”以使集群再次运行,但请务必考虑以下注意事项:

  1. 集群有时可能无法再次启动到健康状态;任何使用本地 SSD 的东西都已经无法停止并干净地重新启动,但除此之外,如果关闭不有序,或者甚至用户安装的设置可能已损坏,Hadoop 守护程序可能会因任何原因无法将重要的内容刷新到磁盘以未知方式启动过程。
  2. 即使虚拟机“停止”,它们也依赖于剩余的底层永久磁盘,因此即使“暂停”,您仍将继续为这些磁盘产生费用;如果我们假设每月每 GB 0.04 美元,并且每个 Dataproc 节点默认使用 500GB 磁盘,那么继续为每个实例支付约 0.028 美元/小时;通常,您的数据将更易于访问且成本更低,只需将其放入 Google Cloud Storage 进行长期存储,而不是尝试将其长期保存在 Dataproc 集群的 HDFS 上。
  3. 如果您过于依赖手动集群设置,那么当您需要扩大集群规模、更改机器类型或更改区域等时,重新设置将变得更加困难。相比之下,使用 Dataproc 的初始化操作,您可以使用Dataproc 的集群扩展功能来调整集群大小并为创建的新工作器自动运行初始化操作。

更新

Dataproc 最近推出了停止和启动集群的功能:https ://cloud.google.com/dataproc/docs/guides/dataproc-start-stop

于 2016-01-01T21:36:22.803 回答