火花任务未开始执行

Posted

技术标签:

【中文标题】火花任务未开始执行【英文标题】:spark tasks not starting to execute 【发布时间】:2020-10-14 17:38:16 【问题描述】:

我正在 spark shell 作业中运行作业

--num-executors 15 
--driver-memory 15G 
--executor-memory 7G 
--executor-cores 8 
--conf spark.yarn.executor.memoryOverhead=2G 
--conf spark.sql.shuffle.partitions=500 
--conf spark.sql.autoBroadcastJoinThreshold=-1 
--conf spark.executor.memoryOverhead=800

作业被卡住并且无法启动 该代码在 270m 的大型数据集上使用过滤条件进行交叉连接。 我已将大表 270m 和小表(100000)的分区增加到 16000, 我已将其转换为广播变量

我已经为这个工作添加了 spark ui,

所以我必须减少分区,增加执行者,任何想法

感谢您的帮助。

![spark ui 1][1] ![火花用户界面 2][2] ![火花 ui 3][3] 10小时后

状态: 任务:7341/16936(16624 失败)

检查容器错误日志

RM Home
NodeManager
Tools
Failed while trying to construct the redirect url to the log server. Log Server url may not be configured
java.lang.Exception: Unknown container. Container either has not started or has already completed or doesn't belong to this node at all.

[50per 完成 ui 1 ][4][50per 完成 ui 2][5] [1]:https://i.stack.imgur.com/nqcys.png [2]:https://i.stack.imgur.com/S2vwL.png [3]:https://i.stack.imgur.com/81FUn.png [4]:https://i.stack.imgur.com/h5MTa.png [5]:https://i.stack.imgur.com/yDfKF.png

【问题讨论】:

我会尝试降低您的内存和 CPU 要求。看起来 Spark 正在等待获得您要求的资源。 好的,但是当我将数据大小从 270mil *100,000 减少到 270mil*1000 以及我应该将内存减少到多少时,它使用相同的设置。谢谢 我不认为它正在等待资源,因为它已经处理了 5 个作业。既然你说增加广播大小会带来问题:减少执行者的数量并增加执行者的内存 【参考方案1】:

如果您能提及您的集群配置,那将会很有帮助。

但是由于您添加了 1000 的小表的广播是有效的,但 100,000 可能不是您需要调整内存配置。

根据您的配置,我假设您总共有:15 * 7 = 105GB 内存。

你可以试试--num-executors 7 --executor-memory 15

这将为每个执行程序提供更多内存来保存广播变量。请相应调整--executor-cores 以正确使用

【讨论】:

以上是关于火花任务未开始执行的主要内容,如果未能解决你的问题,请参考以下文章

火花历史未在 ambari 集群上启动

Spark:火花流中的接收器是瓶颈吗?

手动指定火花执行器的数量

如何合并火花行

蜂巢分区表上的火花行为

火花:十进制类型未找到