我们公司在cloudera上有9个节点集群。
我们有41个长期运行的Spark Streaming作业[YARN +群集模式]和一些常规的Spark Shell作业,计划在每天下午1点运行。
所有作业当前均以用户A角色[具有root权限]提交
我遇到的问题是,当所有41个Spark Streaming作业都在运行时,我计划的作业将无法获得运行资源。
我尝试了YARN公平调度程序,但是调度的作业仍未运行。
我们希望火花流作业始终在运行,但是每当其他预定作业开始时,它将减少占用的资源。
请随时分享您的建议或可能的解决方案。
答案 0 :(得分:0)
您的Spark Streaming作业占用了太多资源,无法启动计划的作业。这是因为它们总是被缩放到没有足够的资源用于预定作业的程度,或者它们没有被缩减。
对于流作业未缩减的情况,您可以检查是否为流作业启用了动态资源分配。一种检查方法是使用spark.sparkContext.getConf.get("spark.streaming.dynamicAllocation.enabled")
通过spark shell。如果启用了动态分配,则可以考虑减少这些作业的最少资源。