Pourquoi ne spark-shell --master fil-client ne parviennent pas (encore pyspark --master fil semble fonctionner)?

Je suis en train de lancer l'étincelle shell sur mon cluster Hadoop via Fil.
J'utilise

  • Hadoop 2.4.1
  • Étincelle 1.0.0

Mon cluster Hadoop fonctionne déjà. Afin d'utiliser Spark, j'ai construit Étincelle comme décrit ici :

mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.1 -DskipTests clean package

La compilation fonctionne très bien, et je peux courir spark-shell sans problèmes. Toutefois, en l'exécutant sur le fils :

spark-shell --master yarn-client

me met le message d'erreur suivant :

14/07/07 11:30:32 INFO cluster.YarnClientSchedulerBackend: Application report from ASM:
         appMasterRpcPort: -1
         appStartTime: 1404725422955
         yarnAppState: ACCEPTED

14/07/07 11:30:33 INFO cluster.YarnClientSchedulerBackend: Application report from ASM:
         appMasterRpcPort: -1
         appStartTime: 1404725422955
         yarnAppState: FAILED

org.apache.spark.SparkException: Yarn application already ended,might be killed or not able to launch application master
.
        at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.waitForApp(YarnClientSchedulerBackend.scala:105
)
        at org.apache.spark.scheduler.cluster.YarnClientSchedulerBackend.start(YarnClientSchedulerBackend.scala:82)
        at org.apache.spark.scheduler.TaskSchedulerImpl.start(TaskSchedulerImpl.scala:136)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:318)
        at org.apache.spark.repl.SparkILoop.createSparkContext(SparkILoop.scala:957)
        at $iwC$$iwC.<init>(<console>:8)
        at $iwC.<init>(<console>:14)
        at <init>(<console>:16)
        at .<init>(<console>:20)
        at .<clinit>(<console>)
        at .<init>(<console>:7)
        at .<clinit>(<console>)
        at $print(<console>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:788)
        at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1056)
        at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:614)
        at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:645)
        at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:609)
        at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:796)
        at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:841)
        at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:753)
        at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:121)
        at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:120)
        at org.apache.spark.repl.SparkIMain.beQuietDuring(SparkIMain.scala:263)
        at org.apache.spark.repl.SparkILoopInit$class.initializeSpark(SparkILoopInit.scala:120)
        at org.apache.spark.repl.SparkILoop.initializeSpark(SparkILoop.scala:56)
        at org.apache.spark.repl.SparkILoop$$anonfun$process$1$$anonfun$apply$mcZ$sp$5.apply$mcV$sp(SparkILoop.scala:913)
        at org.apache.spark.repl.SparkILoopInit$class.runThunks(SparkILoopInit.scala:142)
        at org.apache.spark.repl.SparkILoop.runThunks(SparkILoop.scala:56)
        at org.apache.spark.repl.SparkILoopInit$class.postInitialization(SparkILoopInit.scala:104)
        at org.apache.spark.repl.SparkILoop.postInitialization(SparkILoop.scala:56)
        at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply$mcZ$sp(SparkILoop.scala:930)
        at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:884)
        at org.apache.spark.repl.SparkILoop$$anonfun$process$1.apply(SparkILoop.scala:884)
        at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
        at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:884)
        at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:982)
        at org.apache.spark.repl.Main$.main(Main.scala:31)
        at org.apache.spark.repl.Main.main(Main.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:292)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:55)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Étincelle parvient à communiquer avec mon cluster, mais ça ne marche pas.
Une autre chose intéressante est que je peux accéder à mon cluster à l'aide de pyspark --master yarn. Cependant, je reçois le message d'avertissement suivant

14/07/07 14:10:11 WARN cluster.YarnClientClusterScheduler: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory

et une infinie du temps de calcul lorsque vous faites quelque chose d'aussi simple que de

sc.wholeTextFiles('hdfs://vm7x64.fr/').collect()

Ce qui peut être à l'origine de ce problème ?

La première erreur signifie Étincelle n'a pas pu démarrer dans le Fil de cluster; vous de vérifier l'application journal (à l'aide de yarn logs). Le deuxième moyen du cluster n'a pas assez de ressources à allouer à votre demande de conteneurs. Vérifiez votre Fil de configuration pour vous assurer qu'il a suffisamment de mémoire disponible pour les conteneurs.
avez-vous réussi à le faire fonctionner, finalement? Ne étincelle de la coquille de même le soutien de FILS de mode?

OriginalL'auteur fxm | 2014-07-07