我有一個使用Scala的Spark應用程序,它執行一系列轉換,然後將結果寫入parquet文件。完成任務時SQLListener.onTaskEnd上的Spark NullPointerException
轉換部分無問題完成,結果輸出正確寫入HDFS。該應用程序運行在30個節點的YARN集羣之上。
但是,Spark應用程序本身不會完成並退出YARN。它將保留在資源管理器中。
掛了大約一個小時後(消耗資源和核心),然後它完成或拋出一個錯誤並自殺。
這是應用程序的錯誤日誌。感謝任何人都可以在這個問題上提出一些看法。
16/08/24 14:51:12 INFO impl.ContainerManagementProtocolProxy: Opening proxy : phhdpdn013x.company.com:8041
16/08/24 14:51:22 INFO cluster.YarnClusterSchedulerBackend: Registered executor NettyRpcEndpointRef(null) (phhdpdn013x.company.com:54175) with ID 1
16/08/24 14:51:22 INFO storage.BlockManagerMasterEndpoint: Registering block manager phhdpdn013x.company.com:24700 with 2.1 GB RAM, BlockManagerId(1, phhdpdn013x.company.com, 24700)
16/08/24 14:51:29 INFO cluster.YarnClusterSchedulerBackend: SchedulerBackend is ready for scheduling beginning after waiting maxRegisteredResourcesWaitingTime: 30000(ms)
16/08/24 14:51:29 INFO cluster.YarnClusterScheduler: YarnClusterScheduler.postStartHook done
16/08/24 15:11:00 ERROR scheduler.LiveListenerBus: Listener SQLListener threw an exception
java.lang.NullPointerException
at org.apache.spark.sql.execution.ui.SQLListener.onTaskEnd(SQLListener.scala:167)
at org.apache.spark.scheduler.SparkListenerBus$class.onPostEvent(SparkListenerBus.scala:42)
at org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31)
at org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31)
at org.apache.spark.util.ListenerBus$class.postToAll(ListenerBus.scala:55)
at org.apache.spark.util.AsynchronousListenerBus.postToAll(AsynchronousListenerBus.scala:37)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(AsynchronousListenerBus.scala:80)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(AsynchronousListenerBus.scala:65)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(AsynchronousListenerBus.scala:65)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(AsynchronousListenerBus.scala:64)
at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1181)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1.run(AsynchronousListenerBus.scala:63)
16/08/24 15:11:46 ERROR scheduler.LiveListenerBus: Listener SQLListener threw an exception
java.lang.NullPointerException
AA
介意分享的代碼?這是可重複的嗎? –
你可以檢查後設置? –
FWIW,在大約65個Yarn主機上運行Spark 1.6,我有一個工作在大約20%的時間內得到這個錯誤。 有時,它的前綴是這樣的: WARN TaskSetManager:在階段0.0(TID 205,AF001932.prod.imvu.com)中丟失的任務43.0:java.io.FileNotFoundException:/ data/1/yarn/local/usercache /jwatte/appcache/application_1492705589019_103715/spark-04076078-cff2-4975-a54a-83db2f658072/fetchFileTemp178.tmp(沒有這樣的文件或目錄) at java.io.FileInputStream.open –