spark-submit 执行完 不退出

张映 发表于 2019-08-27

分类目录: hadoop/spark/scala

标签:, ,

spark submit 执行完任务后,卡住了,不退出,找了各种日志,没有报错,并且任务执行的结果也是对的。

出现这个问题,感觉有点蒙,网上找找解决办法,全部不适用。下面详细说一下我的分析和解决过程

1,问题

2019-08-26 19:08:43 INFO  YarnClientSchedulerBackend:54 - Stopped
2019-08-26 19:08:43 INFO  MapOutputTrackerMasterEndpoint:54 - MapOutputTrackerMasterEndpoint stopped!
2019-08-26 19:08:43 INFO  MemoryStore:54 - MemoryStore cleared
2019-08-26 19:08:43 INFO  BlockManager:54 - BlockManager stopped
2019-08-26 19:08:43 INFO  BlockManagerMaster:54 - BlockManagerMaster stopped
2019-08-26 19:08:43 INFO  OutputCommitCoordinator$OutputCommitCoordinatorEndpoint:54 - OutputCommitCoordinator stopped!
2019-08-26 19:08:43 INFO  SparkContext:54 - Successfully stopped SparkContext       //这步出来后,就卡住了
^C2019-08-26 19:08:43 INFO  ShutdownHookManager:54 - Shutdown hook called      //这步出不来,Ctrl+C才能出来
2019-08-26 19:08:43 INFO  ShutdownHookManager:54 - Deleting directory /tmp/spark-0709945c-b48e-4139-93e3-1c89daf92ac2
2019-08-26 19:08:43 INFO  ShutdownHookManager:54 - Deleting directory /tmp/spark-9d8de750-7896-4cde-bc15-6fa0eab59ed7

2,罗列一下,网上找到的方法,本人试了没用,希望对你们有用

//方法1,spark2系列加上以下配置,
val spark = SparkSession.builder().appName("App_name").getOrCreate()
spark.conf.set("mapreduce.fileoutputcommitter.algorithm.version", "2")

//方法2,在spark-submit提交任务 选择 spark on yarn cluster模式
# spark-submit --class test --master yarn test .jar --deploy-mode cluster --conf spark.yarn.submit.waitAppCompletion=false

//方法2,spark2系列加上以下配置
val spark = SparkSession.builder().appName("App_name").getOrCreate()
spark.conf.set("spark.hadoop.mapred.output.committer.class","com.appsflyer.spark.DirectOutputCommitter")
spark.conf.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")

//方法4
spark.stop()

3,确定问题的所在

开始的时候,采用了debug模式,大范围打断点的方法,确定不到问题位置。

最后采取了,逐步删代码的方法,逐步删代码的方法,逐步删代码的方法,找到原因。

引起不退出的代码如下:

Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());

newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

线程池没有关闭,导致spark-submit在等线程池结束。



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/hadoop/2172.html