Spark 报错: ERROR SparkUncaughtExceptionHandler rejected from java.util.concurrent.ThreadPoolExecutor

来源:互联网 发布:苹果电脑mac使用技巧 编辑:程序博客网 时间:2024/06/07 02:38

    最近在使用Spark做一些测试,将代码打包好后,使用Spark-Submit提交任务时,一直报错:

16/01/07 13:50:16 INFO SparkContext: Added JAR file:/root/sparkonhbase.jar at http://10.10.12.1:55234/jars/sparkonhbase.jar with timestamp 145214581603716/01/07 13:50:16 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.16/01/07 13:50:16 INFO AppClient$ClientEndpoint: Connecting to master spark://10.10.12.1:7077...16/01/07 13:50:36 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[appclient-registration-retry-thread,5,main]java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@116465dc rejected from java.util.concurrent.ThreadPoolExecutor@565b576f[Running, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0]at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048)at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372)at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anonfun$tryRegisterAllMasters$1.apply(AppClient.scala:96)at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anonfun$tryRegisterAllMasters$1.apply(AppClient.scala:95)at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108)at org.apache.spark.deploy.client.AppClient$ClientEndpoint.tryRegisterAllMasters(AppClient.scala:95)at org.apache.spark.deploy.client.AppClient$ClientEndpoint.org$apache$spark$deploy$client$AppClient$ClientEndpoint$$registerWithMaster(AppClient.scala:121)at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2$$anonfun$run$1.apply$mcV$sp(AppClient.scala:132)at org.apache.spark.util.Utils$.tryOrExit(Utils.scala:1119)at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2.run(AppClient.scala:124)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:745)16/01/07 13:50:36 INFO DiskBlockManager: Shutdown hook called16/01/07 13:50:36 INFO ShutdownHookManager: Shutdown hook called
     但是,我运行官方提供的Example时,就能成功执行,百思不得其解!后来,终于在http://www.cnblogs.com/zhangqingping/p/4354383.html 这一篇文章上得到了答案,原来:

      Spark使用了Akka,Spark的master URL里面必须使用hostname,不能直接使用IP,否则会报错。怎么听着好低级的错误啊!抱着试一试的态度,我讲代码里的master的IP改成了所对应的hostname,再次打包,提交,果然能运行了!

     但是,为什么Spark,Akka居然连这种问题都不能解决呢?期待高手解答,先在此备忘解决方法。

0 0