我有一个接受用户工作的系统。这些作业在数据业务上作为火花作业运行。白天有很多工作要运行,但晚上可能没有。我想知道在这些停机期间终止集群的最佳方法是什么?一旦收到新工作,重新启动或重新创建集群?这里的目标是在不活动期间不收取费用。
答案 0 :(得分:2)
Dataproc现在原生支持scheduled cluster deletion。您可以计划在特定时间(例如晚上7点)或空闲一段时间(例如1小时)删除集群。
您也可以签出cluster autoscaling。
答案 1 :(得分:1)
您可以使用以下两种主要方法之一:
当您使用Google云端存储连接器[3]而非HDFS存储数据时,这两种方法都能发挥最佳效果。
要缩小群集,您可以在非高峰时段运行此命令:
gcloud dataproc clusters update <cluster-name> --num-workers <new-number-of-workers>
要在非高峰时段删除群集,请使用以下命令:
gcloud dataproc clusters delete my-dataproc-cluster-name
使用Dataproc完全支持的可抢占虚拟机[4],您可以将Dataproc持续成本降低多达70%。
[2] Managing Dataproc Clusters
[3] Google Cloud Storage Connector for Spark/Hadoop
[4] Preemptible VMs
答案 2 :(得分:0)
https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/scheduled-deletion
看起来您正在寻找在群集创建期间可以使用的-max-idle 选项。
从文档中
- max-idle :从集群进入空闲状态到集群开始删除的持续时间。以IntegerUnit格式提供持续时间,单位可以是“ s,m,h,d”(分别是秒,分钟,小时,天)。示例:“ 30m”或“ 1d”(从群集空闲起30分钟或1天)。 1秒10分钟14天
-到期时间:开始删除ISO 8601日期时间格式的集群的时间。通过时间戳生成器是一种以正确格式生成日期时间的简单方法。例如,“ 2017-08-22T13:31:48-08:00”在UTC -8:00时区中指定13:21:48的到期时间。从当前时间开始14天到当前时间1秒10分钟
-max-age :从提交集群创建请求到集群开始删除的持续时间。以IntegerUnit格式提供持续时间,单位可以是“ s,m,h,d”(分别是秒,分钟,小时,天)。示例:“ 30m”(从现在开始30分钟); “ 1d”(从现在开始1天)。 1