Spark报错与日志问题查询指南

本文介绍了如何通过YARN页面和Spark UI查询Spark应用的错误和日志信息,包括driver日志、Spark UI的Jobs、Stages、Storage、Environment、Executors等各个界面的使用,以及如何识别和解决数据倾斜、小文件问题、笛卡尔积、内存溢出和YARN队列资源不足等常见问题。
摘要由CSDN通过智能技术生成

一、各界面说明
1.1、查看YARN页面的driver日志

可以在右侧搜索框中填对应application号找到任务,然后点击对应的application号链接,如下图所示:
 

这样会进入该application的信息界面,“FinalStatus”显示了该application的最后状态,点击下方的“logs”按钮也会进入到driver日志界面,如下图所示:

 

 

对于driver日志而言,代码中的println()和show()等函数的输出,一般都在stdout里,大部分重要的报错信息都在stderr里。如果application跑的很慢,还可以通过gclog确认是否是因为driver遇到了Full GC,也可以进入stdout或stderr日志界面后,在浏览器地址栏中将“stdout”或“stderr”文字替换为“gclog”,回车后也可查看gclog信息。

在stdout与stderr中,着重搜索和看ERROR、Exception、Failed、Caused by等位置的报错信息,这四个位置都没什么内容再看WARN。
1.2、查看Spark UI

如果任务正在执行中,可以在yarn页面搜对应的application号来找到自己的任务,然后点击右侧的“Application Master”链接进入Spark UI界面,如果任务已完成,该链接会变成“history”,如下图所示:
 

(1)首先是“Jobs”界面,“Event Timeline”一栏可以显示各Executor的加入与回收;“Active Jobs”一栏指正在运行或等待运行的job;“Description”一列可以看到当前job执行的SQL语句或者代码所在行数,且有链接可点击进入包含的各stages界面;“Submitted”一列表示该job何时被提交给集群;“Duration”一列表示该job持续了多长时间;“Stages”一列显示了该job包含多少个stage,右侧的进度蓝条可以判断总共需要多少个task,完成了多少,同时有多少个task在并发running,如下图所示:

 

(2)第二个菜单是“Stages”界面,这里包含了所有stage的状态信息,显示的内容和“Jobs”菜单界面中类似,还多了一些内容,例如“Shuffle Read”列表示从上一个stage读取了多少数据量,“Shuffle Write”列表示该stage写入了多少数据量供下一个stage拉取,如下图所示:

 

如果有失败的stage,也会在“Failure Reason”一列显示出失败原因,如下图所示:

 

各stage的“Description”处有蓝色链接,可以点击进入该stage的详细信息界面,开头提到了该stage的总执行时长、本地化级别情况、输入数据量(容量/条数)、输出给下一个stage的数据量(容

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值