2016-08-24 3 views
0

У меня есть приложение Spark, использующее Scala, которые выполняют серию преобразований, а затем записывают результат в файл паркета.Spark NullPointerException в SQLListener.onTaskEnd при завершении задачи

Часть преобразования завершена без проблем, результат вывода записывается в HDFS правильно. Приложение работает поверх кластера YARN из 30 узлов.

Однако само приложение «Искра» не будет завершено и не покинет 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 

аа

+0

Ума обмена код? Является ли это воспроизводимым? –

+0

Вы можете проверить настройки сообщений? –

+0

FWIW, работает Spark 1.6 через около 65 хостов, у меня есть работа, которая получает эту ошибку примерно в 20% случаев. Иногда это префикс примерно такой: WARN TaskSetManager: потерянная задача 43.0 в стадии 0.0 (TID 205, AF001932.prod.imvu.com): 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 –

ответ

0

Какова ваша версия Спарк?
сообщение об ошибке выглядит много, как этот вопрос

https://issues.apache.org/jira/browse/SPARK-12339

+0

Я не думаю, что это то же самое, потому что это ошибка связана с ручным убийством рабочих мест. Опять же, это может быть просто признаком кодового пути, вызываемого из множества различных условий. –