Spark 2.4.8 动态分配问题(可能与外部 Shuffle 服务有关?)
内容提要
作者在使用Spark 2.4.8时遇到动态分配问题,怀疑与外部Shuffle服务有关。尽管配置正确,作业仍卡在初始任务。日志显示应用状态从FINISHING变为FINISHED,但未获得资源,可能是因为工作节点未注册或资源不足。作者希望解决此问题以正常使用动态分配。
关键要点
-
作者在使用Spark 2.4.8时遇到动态分配问题,怀疑与外部Shuffle服务有关。
-
尽管配置正确,作业仍卡在初始任务,日志显示应用状态从FINISHING变为FINISHED,但未获得资源。
-
可能原因是工作节点未注册或资源不足,作者希望解决此问题以正常使用动态分配。
-
作者提供了Yarn和Spark的相关配置,确认必要的jar文件在所有节点上都存在。
-
在提交Spark作业时,作业卡在初始任务,日志显示初始作业未接受任何资源。
-
检查Yarn UI,发现只有驱动节点显示,没有工作节点被分配。
-
外部Shuffle服务似乎在每个节点管理器主机上正确初始化。
-
在动态分配启用的Spark作业活动期间,资源管理器日志显示应用状态变化,但未能成功分配资源。
延伸问答
Spark 2.4.8 的动态分配问题是什么?
在使用 Spark 2.4.8 时,动态分配功能未能正常工作,作业卡在初始任务,日志显示应用状态从 FINISHING 变为 FINISHED,但未获得资源。
可能导致 Spark 动态分配失败的原因有哪些?
可能的原因包括工作节点未注册或资源不足,导致作业无法获得所需的资源。
如何检查 Spark 作业的资源分配情况?
可以通过检查 Yarn UI 来查看资源分配情况,确认工作节点是否注册并且有足够的资源可用。
在 Spark 中如何配置动态分配?
可以通过设置相关配置项,如 `spark.dynamicAllocation.enabled` 和 `spark.shuffle.service.enabled` 来启用动态分配。
外部 Shuffle 服务在 Spark 中的作用是什么?
外部 Shuffle 服务用于管理 Spark 作业的 Shuffle 过程,确保在动态分配时能够有效地分配和管理资源。
如何解决 Spark 作业卡在初始任务的问题?
可以检查配置是否正确,确保所有必要的 jar 文件在所有节点上都存在,并确认工作节点已注册且资源充足。