web-dev-qa-db-fra.com

Spark fonctionne sur Yarn cluster exitCode = 13:

Je suis un débutant spark/yarn, exécutez exitCode = 13 lorsque je soumets un travail spark sur le cluster de fils. Lorsque le travail spark s'exécute en mode local) , tout va bien.

La commande que j'ai utilisée est:

/usr/hdp/current/spark-client/bin/spark-submit --class com.test.sparkTest --master yarn --deploy-mode cluster --num-executors 40 --executor-cores 4 --driver-memory 17g --executor-memory 22g --files /usr/hdp/current/spark-client/conf/Hive-site.xml /home/user/sparkTest.jar*

Spark Error Log:

16/04/12 17:59:30 INFO Client:
         client token: N/A
         diagnostics: Application application_1459460037715_23007 failed 2 times due to AM Container for appattempt_1459460037715_23007_000002 exited with  exitCode: 13
For more detailed output, check application tracking page:http://b-r06f2-prod.phx2.cpe.net:8088/cluster/app/application_1459460037715_23007Then, click on links to logs of each attempt.
Diagnostics: Exception from container-launch.
Container id: container_e40_1459460037715_23007_02_000001
Exit code: 13
Stack trace: ExitCodeException exitCode=13:
        at org.Apache.hadoop.util.Shell.runCommand(Shell.Java:576)
        at org.Apache.hadoop.util.Shell.run(Shell.Java:487)
        at org.Apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.Java:753)
        at org.Apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.Java:211)
        at org.Apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.Java:302)
        at org.Apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.Java:82)


**Yarn logs**

    16/04/12 23:55:35 INFO mapreduce.TableInputFormatBase: Input split length: 977 M bytes.
16/04/12 23:55:41 INFO yarn.ApplicationMaster: Waiting for spark context initialization ...
16/04/12 23:55:51 INFO yarn.ApplicationMaster: Waiting for spark context initialization ...
16/04/12 23:56:01 INFO yarn.ApplicationMaster: Waiting for spark context initialization ...
16/04/12 23:56:11 INFO yarn.ApplicationMaster: Waiting for spark context initialization ...
16/04/12 23:56:11 INFO client.ConnectionManager$HConnectionImplementation: Closing zookeeper sessionid=0x152f0b4fc0e7488
16/04/12 23:56:11 INFO zookeeper.ZooKeeper: Session: 0x152f0b4fc0e7488 closed
16/04/12 23:56:11 INFO zookeeper.ClientCnxn: EventThread shut down
16/04/12 23:56:11 INFO executor.Executor: Finished task 0.0 in stage 1.0 (TID 2). 2003 bytes result sent to driver
16/04/12 23:56:11 INFO scheduler.TaskSetManager: Finished task 0.0 in stage 1.0 (TID 2) in 82134 ms on localhost (2/3)
16/04/12 23:56:17 INFO client.ConnectionManager$HConnectionImplementation: Closing zookeeper sessionid=0x4508c270df0980316/04/12 23:56:17 INFO zookeeper.ZooKeeper: Session: 0x4508c270df09803 closed *
...
    16/04/12 23:56:21 ERROR yarn.ApplicationMaster: SparkContext did not initialize after waiting for 100000 ms. Please check earlier log output for errors. Failing the application.
16/04/12 23:56:21 INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 13, (reason: Timed out waiting for SparkContext.)
16/04/12 23:56:21 INFO spark.SparkContext: Invoking stop() from shutdown hook *
13
user_not_found

Il semble que vous ayez défini le maître dans votre code comme local

SparkConf.setMaster("local[*]")

Vous devez laisser le maître non défini dans le code et le définir plus tard lorsque vous exécutez spark-submit

spark-submit --master yarn-client ...

20
user1314742

Si cela aide quelqu'un

Une autre possibilité de cette erreur est lorsque vous placez incorrectement le paramètre - class

0

J'ai eu exactement le même problème mais la réponse ci-dessus n'a pas fonctionné. Alternativement, lorsque je l'ai exécuté avec spark-submit --deploy-mode client tout a bien fonctionné.

0
Sahas

J'ai eu cette même erreur lors de l'exécution d'un travail SparkSQL en mode cluster. Aucune des autres solutions n'a fonctionné pour moi, mais en consultant les journaux du serveur d'historique des travaux dans Hadoop, j'ai trouvé cette trace de pile.

20/02/05 23:01:24 INFO Hive.metastore: Connected to metastore.
20/02/05 23:03:03 ERROR yarn.ApplicationMaster: Uncaught exception: 
Java.util.concurrent.TimeoutException: Futures timed out after [100000 milliseconds]
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:223)
    at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:227)
    at org.Apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:220)
    at org.Apache.spark.deploy.yarn.ApplicationMaster.runDriver(ApplicationMaster.scala:468)
    at org.Apache.spark.deploy.yarn.ApplicationMaster.org$Apache$spark$deploy$yarn$ApplicationMaster$$runImpl(ApplicationMaster.scala:305)
    at org.Apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$1.apply$mcV$sp(ApplicationMaster.scala:245)
    at org.Apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$1.apply(ApplicationMaster.scala:245)
    at org.Apache.spark.deploy.yarn.ApplicationMaster$$anonfun$run$1.apply(ApplicationMaster.scala:245)
...


et en regardant le code source de Spark vous constaterez que le matin a expiré en attendant le spark.driver.port propriété à définir par le thread exécutant la classe d'utilisateurs.
Il pourrait donc s'agir d'un problème transitoire ou vous devriez enquêter sur votre code pour connaître la raison d'un délai d'attente.

0
Scrotch