/ / Dlaczego uruchomienie iskry-powłoki z klientem-kliencie kończy się niepowodzeniem z "java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream"? - hadoop, iskra apache, przędza

Dlaczego uruchomienie iskry-powłoki z klientem-kliencie kończy się niepowodzeniem z "java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream"? - hadoop, iskra apache, przędza

Próbuję stworzyć klaster w domu dla moich osobistych potrzeb (uczenia się). Najpierw zrobiłem Hadoop + Yarn. MR2 działa. Po drugie - próbuję dodać Spark, ale otrzymuję błąd dotyczący brakujących klas.

[root@master conf]# spark-shell --master yarn-client
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
...
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream

Poszłam za nimi instrukcje i dodane do spark-env.sh

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop)

Więcej informacji:
Cent_OS.86_64
Hadoop reż: /usr/local/hadoop

Wersja Hadoop:

[root@master conf]# hadoop version
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar

podręcznik mówi, że muszę mieć 2 vary: HADOOP_CONF_DIR or YARN_CONF_DIR

[root@master conf]# echo $HADOOP_CONF_DIR
/usr/local/hadoop/etc/hadoop
[root@master conf]# echo $YARN_CONF_DIR
/usr/local/hadoop/etc/hadoop

Spark jest spark-1.5.0-bin-without-hadoop.tgz -> /usr/local/spark

Próbuję uruchomić spark-shell --master yarn-client w tym samym czasie, gdy miaoop + przędza są dostępne i dostępne http://master:50070/dfshealth.html#tab-overview http://master:8088/cluster/apps http://master:19888/jobhistory

Nie mam zainstalowanej Scala, jeśli to ma znaczenie. Jakieś pomysły, które można przegapić w ustawieniach Spark? Dziękuję Ci.

Odpowiedzi:

2 dla odpowiedzi № 1

Odpowiadając na moje własne pytanie: Przede wszystkim jest to mój osobisty błąd. Powołanie spark-shell Wprowadzałem go ze starego (niewłaściwego) miejsca /opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/bin/spark-shell. Byłem pewien, że usunąłem wszystkie z testów CDH przez yum remove cloudera*.

[root@master bin]# type spark-shell
spark-shell is hashed (/usr/bin/spark-shell)
[root@master bin]# hash -d spark-shell

Teraz uruchamianie, jeśli jest od dawna spark-1.5.0-bin-without-hadoop.tgz nadal dawał mi ten sam błąd. Pobrano spark-1.5.0-bin-hadoop2.6, dodany export SPARK_DIST_CLASSPATH=$HADOOP_HOME - iskierka działa teraz.


1 dla odpowiedzi nr 2

Otrzymałem ten błąd, ponieważ wpisując spark-shell, /usr/bin/spark-shell został wykonany.

Aby wywołać moją specyficzną iskrową powłokę, uruchomiłem następujące polecenie z wnętrza wbudowanego źródła iskier -

./bin/spark-shell

0 dla odpowiedzi № 3

Zamiast spark-1.5.0-bin-without-hadoop.tgz pobierz jedną z kompilacji dla Hadoop 2.x. Są łatwiejsze do skonfigurowania, ponieważ są dostarczane z bibliotekami klienta Hadoop.