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时间过长)