0

我们公司在cloudera上有一个9节点的集群。

我们有 41 个长期运行的 spark 流作业 [YARN + 集群模式] 和一些计划在每天下午 1 点运行的常规 spark shell 作业。

当前所有作业都以用户 A 角色提交[具有 root 权限]

我遇到的问题是,当所有 41 个 spark 流作业都在运行时,我的计划作业将无法获得资源来运行。

我已经尝试过 YARN 公平调度程序,但计划的作业仍然没有运行。

我们希望 spark 流作业始终在运行,但它会减少其他计划作业启动时占用的资源。

请随时分享您的建议或可能的解决方案。

4

1 回答 1

1

您的 Spark 流式传输作业消耗了太多资源,无法启动计划的作业。这要么是因为它们总是被缩放到没有足够资源用于预定作业的程度,要么它们没有缩减。

对于流式作业没有缩减的情况,您可以检查您是否为流式作业启用了动态资源分配。一种检查方法是通过 spark shell 使用spark.sparkContext.getConf.get("spark.streaming.dynamicAllocation.enabled"). 如果启用了动态分配,那么您可以考虑减少这些作业的最低资源。

于 2019-07-16T11:20:11.117 回答