纱线和Spark Shell作业上的Spark作业的资源管理

时间:2019-07-16 09:37:05

标签: yarn spark-submit spark-shell

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

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

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

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

我尝试了YARN公平调度程序,但是调度的作业仍未运行。

我们希望火花流作业始终在运行,但是每当其他预定作业开始时,它将减少占用的资源。

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

1 个答案:

答案 0 :(得分:0)

您的Spark Streaming作业占用了太多资源,无法启动计划的作业。这是因为它们总是被缩放到没有足够的资源用于预定作业的程度,或者它们没有被缩减。

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