Spark任务存在大量Task失败记录分享
最近Spark任务调度任务跑的时间比平时慢很多,查看SparkUI发现有大量的Task被异常终止,查看日志发现了有几个问题,记录一下。
根据日志,主要涉及任务被终止、YARN集群中的抢占问题以及网络连接错误。
1、任务被终止的警告:
WARN Lost task 87.0 in stage 6.0 (TID 549, ××-××-××-×××, executor 4): TaskKilled (another attempt succeeded) (org.apache.spark.scheduler.TaskSetManager)
...
WARN Lost task 19.0 in stage 6.0 (TID 494, ××-××-××-×××, executor 8): TaskKilled (another attempt succeeded) (org.apache.spark.scheduler.TaskSetManager)
这些警告表明您的Spark作业中的某些任务被终止,并且Spark正在尝试重新运行它们(因此出现“another attempt succeeded”)。这可能是由于资源约束、抢占或其他问题引起的。需要进一步调查。
2、执行器被抢占:
WARN Requesting driver to remove executor 20 for reason Container container_×××× on host: ××-××-××-××× was preempted.
...
ERROR Lost executor 20 on ××-××-××-×××: Container container_×××× on host: ××-××-××-××× was preempted.
这些警告和错误表明执行器被抢占,很可能是由于YARN集群中的资源争用。执行器被强制终止,导致任务失败。
3、连接重置错误:
WARN Exception in connection from /××-××-××-×××:×××× (org.apache.spark.network.server.TransportChannelHandler)
...
WARN Exception in connection from /××-××-××-×××:×××× (org.apache.spark.network.server.TransportChannelHandler)
这些警告表明存在网络相关问题,特别是对等方的连接被重置。这可能是由于网络问题或不稳定性引起的,可能影响Spark组件之间的通信。
解决方案:试一下加上--conf spark.network.timeout=300s和--conf spark.shuffle.consolidateFiles=false提高executor网络方面和减少文件合并开销,
加上--conf spark.sql.shuffle.partitions=240优化调整分区数,这个参数调整最好为总核数的3倍
网络没问题大话,很大概率就是资源不足了,集群能给到的资源满足不了Spark任务设置的资源大小。这边最后查了也是发现当时的core
不够了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
2023-01-09 Flink安装部署
2023-01-09 Flink的状态
2023-01-09 Flink合流操作
2023-01-09 Flink设置Source数据源
2023-01-09 Flink设置Sink输出
2023-01-09 Flink的高级应用watermake理论
2023-01-09 Flink的转换方法