一步一个脚印,一天一道面试题。
总结一下平时工作时遇到的 Spark
报错也是一个不错的帮助,来总结一下吧。
Killed by external signal
(程序)被外部应用干掉了,听起来挺奇葩的,但大多就是数据量过大, Shuffle
时有些 excutor,网络等问题导致失败。一般数据倾斜的概率不高。
这个报错一般伴随着这些报错:
connection reset by peer
connection xxx.xxx.xxx.xx is closed
Missing an output location for shuffle
解决办法: 1.看是否数据倾斜单独优化;2.调整到资源充裕的时间段 3.增加资源;
Couldn't find file /table1/partition1/0001
这种是因为那个表的那个分区里有脏数据。一般只是select
读取还不会报错,但如果用这张表里读的数据去进行下一步的write
写入,就会发生报错。
解决办法: 清理错误数据,可以考虑删除文件,或overwrite
覆盖写入。
org.apache.spark.sql.catalyst.errors
一般就是使用 Spark SQL
的语法问题。
解决办法: 1. explain sql
;2. 把复杂的 SQL
拆成一部分一部分小 SQL
进行测试,最后组装回复杂 SQL
日常遇到挺多,但没文字记录下来,临时就想到这些,欢迎留言补充。
我是近未来,祝你变得更强。