Spark任务挂起,报Initial job has not accepted any resources异常

任务挂起,报Initial job has not accepted any resources异常

现象描述

在客户端使用yarn-client模式提交任务时,任务不结束,循环报”Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory”字样的警告。

可能原因

使用yarn-client模式运行任务时,Spark应用程序的Driver运行在客户端节点上,运行任务的过程中会和集群内Yarn进行通信。该问题可能的原因有:

  • 检查Spark的客户端是否在Yarn所在节点的主机列表中。若不在,则会解析错误,从而造成job不能被初始化的假象。
  • 检查executor memory是否配置太大,导致NodeManager提供的内存不足以启动一个container。

定位思路

  1. 查看集群内每台节点中的“/etc/hosts”文件中是否加入了客户端节点的IP和主机名。如果“/etc/hosts”文件未加入,则修改文件,重试跑应用。
  2. 若“/etc/hosts”加入了客户端节点的IP和主机名后,该问题还存在时,查看Executor端对应的进程CoarseGrainedExecutorBackend是否存在。如果不存在,可能是由于executor memory配置太大导致的。

处理步骤

  1. 在集群内部署Yarn的每台节点的“/etc/hosts”中按照格式加入客户端节点的IP和主机名。
  2. 适当减少executor memory的大小。根据Yarn的可用资源的大小,适当配置executor memory。

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注