2014-07-07 9 views
11

Próbuję uruchomić iskrową powłokę na moim gromadzie Hadoop za pośrednictwem Przędzy. używamDlaczego iskra-robota -master-klocek zawodzi (a mimo to nitspark - przędza typu master działa)?

  • Hadoop 2.4.1
  • Spark 1.0.0

My Hadoop klaster już działa. W celu wykorzystania Spark, Spark I zbudowany jak opisano here:

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

Kompilacja działa dobrze i mogę uruchomić spark-shell bez kłopotów. Jednak uruchomienie go na przędzy:

spark-shell --master yarn-client 

dostaje mi następujący błąd:

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) 

Spark udaje się komunikować z moim klastra, ale nie wyszło. Inną interesującą rzeczą jest to, że mogę uzyskać dostęp do mojego klastra za pomocą pyspark --master yarn. Jednak pojawia się następujące ostrzeżenie

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 

i nieskończony czas obliczeń, gdy robi coś tak prostego jak

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

Co może być przyczyną tego problemu?

+2

Pierwszy błąd oznacza, że ​​Spark nie zaczął się w gromadzie Przędzy; sprawdź logi aplikacji (używając "logów przędzy").Drugi oznacza, że ​​klaster nie ma wystarczających zasobów, aby alokować żądane pojemniki. Sprawdź konfigurację przędzy, aby upewnić się, że dostępna jest wystarczająca ilość pamięci dla kontenerów. – vanza

+0

@fxm, czy udało ci się w końcu to zadziałać? Czy iskra-skorupa obsługuje nawet tryb ZMIANY? – Avision

Odpowiedz

6

Proszę sprawdzić, czy klaster Hadoop działa poprawnie. Na następnym procesie PRZĘDZY węzła master musi być uruchomiony:

$ jps 
24970 ResourceManager 

na węzłach podrzędnych/Komornicy:

$ jps 
14389 NodeManager 

także upewnić się, że stworzył odniesienia (lub kopiowane te pliki) do konfiguracji Hadoop w Spark katalogu config:

$ ll /spark/conf/ | grep site 
lrwxrwxrwx 1 hadoop hadoop 33 Jun 8 18:13 core-site.xml -> /hadoop/etc/hadoop/core-site.xml 
lrwxrwxrwx 1 hadoop hadoop 33 Jun 8 18:13 hdfs-site.xml -> /hadoop/etc/hadoop/hdfs-site.xml 

można również sprawdzić ResourceManager Web UI na porcie 8088 - http://master:8088/cluster/nodes. Musi być lista dostępnych węzłów i zasobów.

Musisz spojrzeć na logach wykorzystaniem kolejnego polecenia (ID aplikacji można znaleźć w sieci Web UI):

$ yarn logs -applicationId <yourApplicationId> 

Albo można patrzeć bezpośrednio do całych plików dziennika na Master/gospodarz ResourceManager:

$ ll /hadoop/logs/ | grep resourcemanager 
-rw-rw-r-- 1 hadoop hadoop 368414 Jun 12 18:12 yarn-hadoop-resourcemanager-master.log 
-rw-rw-r-- 1 hadoop hadoop 2632 Jun 12 17:52 yarn-hadoop-resourcemanager-master.out 

I na slave/NodeManager gospodarze:

$ ll /hadoop/logs/ | grep nodemanager 
-rw-rw-r-- 1 hadoop hadoop 284134 Jun 12 18:12 yarn-hadoop-nodemanager-slave.log 
-rw-rw-r-- 1 hadoop hadoop  702 Jun 9 14:47 yarn-hadoop-nodemanager-slave.out 

Należy również sprawdzić, czy wszystkich ENVI zmienne racjonalne są poprawne:

HADOOP_CONF_LIB_NATIVE_DIR=/hadoop/lib/native 
HADOOP_MAPRED_HOME=/hadoop 
HADOOP_COMMON_HOME=/hadoop 
HADOOP_HDFS_HOME=/hadoop 
YARN_HOME=/hadoop 
HADOOP_INSTALL=/hadoop 
HADOOP_CONF_DIR=/hadoop/etc/hadoop 
YARN_CONF_DIR=/hadoop/etc/hadoop 
SPARK_HOME=/spark 
+0

Nie mogę znaleźć miejsca, w którym generowane są pliki dzienników, wykopię trochę więcej – fxm

+0

Spróbuj: 'find/* -name" * przędza * log * "' –

+0

Mam ten sam problem, próbowałem tego wszystkiego, ale wciąż problem nie rozwiązuje. proszę, jeśli ktoś pomoże, utknąłem tutaj. –

Powiązane problemy