在Dataproc中运行300多个并发Spark作业的最佳方法?

问题描述

我有一个带有2个工作程序节点(n1s2)的Dataproc集群。有一个外部服务器,可以在一小时内提交大约360个Spark作业(每次提交之间间隔几分钟)。第一个工作成功完成,但随后的工作陷入困境,根本无法继续进行。

每个作业都处理一些时间序列号并写入Cassandra。当群集完全空闲时,通常需要3到6分钟的时间。

我认为这可以通过仅扩展集群来解决,但对我而言将变得非常昂贵。 最佳解决此用例的其他选择是什么?

解决方法

在2个工作节点群集上运行300多个并发作业听起来不可行。您首先要估计每个作业需要多少资源(CPU,内存,磁盘),然后为群集大小制定计划。 YARN指标(例如可用CPU,可用内存,尤其是待处理的内存)将有助于识别资源不足的情况。