Yarn 上的 spark 作业和 spark shell 作业的资源管理

resource management on spark jobs on Yarn and spark shell jobs

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

我们有 41 个长时间的 运行ning spark 流作业 [YARN + 集群模式] 和一些定期 spark shell 作业安排在每天下午 1 点 运行。

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

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

我已经尝试了 YARN 公平调度器,但调度的作业仍然没有 运行ning。

我们预计 Spark Streaming 作业总是 运行ning,但它会减少其他计划作业启动时占用的资源。

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

您的 Spark Streaming 作业消耗了太多资源,您的计划作业无法启动。这要么是因为它们总是扩展到没有足够的资源用于计划作业的程度,要么是因为它们没有缩减。

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