火花任务未开始执行
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
以正确使用
【讨论】:
以上是关于火花任务未开始执行的主要内容,如果未能解决你的问题,请参考以下文章