有没有一种方法可以暂停Dataproc集群,以便在我不主动运行spark-shell或spark-submit作业时不被收取费用?此链接上的集群管理说明:https://cloud.google.com/sdk/gcloud/reference/beta/dataproc/clusters/

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

最佳答案

通常,最好的做法是将用于自定义群集的步骤提取到一些安装脚本中,然后使用Dataproc的initialization actions轻松地在群集部署过程中自动完成安装。
这样,如果您想要在多个并发的Dataproc集群上进行相同的设置,或者想要更改计算机类型,或者收到Dataproc的次要版本错误修复,就可以轻松地重现自定义项,而无需人工参与。偶尔发布。
目前,确实没有官方支持的暂停Dataproc集群的方法,很大程度上是因为能够进行可复制的集群部署以及下面列出的其他一些注意事项,这意味着在99%的时间里,最好使用初始化操作自定义来代替就地暂停群集的过程。就是说,可能存在短期入侵,例如进入Google Compute Engine page,选择要暂停的Dataproc集群中的实例,单击“停止”而不删除它们。
仅当基础实例正在运行时才发生Compute Engine每小时收费和Dataproc的per-vCPU收费,因此,尽管您已手动“停止”了实例,但是即使Dataproc仍在列出中,您也不会产生Dataproc或Compute Engine的实例小时收费。将该群集显示为“正在运行”,尽管会显示警告,如果您进入Dataproc群集摘要页面的“VM实例”选项卡,则会看到该警告。
然后,您应该能够从Google Compute Engine page页面上单击“开始”以使集群再次运行,但是考虑以下警告很重要:

  • 集群有时可能无法再次启动到健康状态;所有使用本地SSD的操作都无法停止并重新启动,但是除此之外,如果关闭顺序不正确,甚至用户安装的设置可能已损坏,则Hadoop守护程序可能由于某种原因而失败,无法刷新磁盘上的重要内容。启动过程的方式未知。
  • 即使虚拟机被“停止”,它们也依赖于剩余的底层Persistent Disks,因此即使在“暂停”状态下,您仍将继续为它们付费。如果我们假设每GB每月$ 0.04,并且每个Dataproc节点默认使用500GB磁盘,那么每个实例每小时将继续支付约$ 0.028/小时;通常,将数据放入Google Cloud Storage进行长期存储会比在Dataproc集群的HDFS上长期保存数据更容易访问,也更便宜。
  • 如果您过多地依赖于手动集群设置,那么在需要调整集群大小,更改机器类型或更改区域等情况时,重新执行操作将变得更加困难。通过使用Dataproc的初始化操作,您可以使用Dataproc's cluster scaling feature调整集群的大小,并为创建的新工作程序自动运行初始化操作。

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

    关于apache-spark - 暂停Dataproc集群-Google Compute引擎,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34558427/

    10-10 16:26