spark应用程序常见问题整理

时间:2020-11-27 06:44:22

1.executor lost /java oom

通常是由于单个task内存占用过多,可以观察是哪个阶段挂的,如果类似groupbykey,可以看看是否有数据倾斜现象

如果不是,可以repartition手动增加partitioin数,减少单个task的资源消耗

有cache操作,partition数需要调的更大

2.看不到log,可能是关闭了eventlog

3.hadoop慢节点,可以考虑配置推测执行,但是需要合理设置阈值

4.spark.max.creatFiles 1000

最后输出使用repartition ,限制一下文件数(在小文件的情况下,比如文件大小平均不到1m)

5.all master unresposive

spark-submit --class org.apache.spark.examples.SparkPi  \

--driver-memory 4g\

--queue default\

--conf "spark.dynamicAllocation.minExecutors=10"

--conf "spark.dynamicAllocation.maxExecutors=40"

lib/spark-examples*.jar \#指定程序JAR的位置

6.historyserver查看

yarn log无法查看,没有开启日志聚集

7.程序有Bug或者spark-shell没有退出。手动kill

8.error while invoking rpchandler#receive

unread block data

driver内存不足导致

另外1.6 spark默认rpc方式是netty 不是akka

9.new SparkContext启动慢

driver内存小/queue没资源(会显示0/0)

10.NoRouteToHostException

网络问题,重试OK

11.error sending reponse

driver内存不足

12.程序调优

计算不平衡,内存不足(GC时间过长)