/ / Warum schlägt das Starten von Spark-Shell mit dem Garn-Client mit "java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream" fehl? - Hadoop, Apache-Spark, Garn

Warum schlägt das Starten von Spark-Shell mit dem Garn-Client mit "java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStream" fehl? - Hadoop, Apache-Spark, Garn

Ich versuche, zu Hause einen Cluster für meine persönlichen Bedürfnisse aufzubauen (Lernen). Zuerst machte ich Hadoop + Yarn. MR2 arbeitet. Zweitens: Ich versuche Spark hinzuzufügen, bekomme aber einen Fehler wegen fehlender Klassen.

[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

Ich folgte diesen Anleitung und hinzugefügt in spark-env.sh

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

Mehr Info:
Cent_OS.86_64
Hadoop dir: /usr/local/hadoop

Hadoop-Version:

[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

Handbuch sagt, dass ich 2 vars haben muss: 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

Funken ist spark-1.5.0-bin-without-hadoop.tgz -> /usr/local/spark

Ich versuche zu starten spark-shell --master yarn-client zur gleichen Zeit, wenn Hadoop + Garn verfügbar sind http://master:50070/dfshealth.html#tab-overview http://master:8088/cluster/apps http://master:19888/jobhistory

Ich habe keine Scala installiert, wenn es darauf ankommt. Irgendwelche Ideen, die ich in Spark Einstellungen vermissen könnte? Vielen Dank.

Antworten:

2 für die Antwort № 1

Beantworte meine eigene Frage: Zuallererst ist das mein persönlicher Fehler. Berufung spark-shell Ich habe es von der alten (falschen) Stelle gestartet /opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/bin/spark-shell. Ich war mir sicher, dass ich alles aus CDH-Tests gelöscht habe yum remove cloudera*.

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

Jetzt starten, wenn von alt spark-1.5.0-bin-without-hadoop.tgz gab mir immer noch den gleichen Fehler. Heruntergeladen spark-1.5.0-bin-hadoop2.6, hinzugefügt export SPARK_DIST_CLASSPATH=$HADOOP_HOME - Funkenschale arbeitet jetzt.


1 für die Antwort № 2

Ich habe diesen Fehler bekommen, weil ich getippt habe spark-shell, /usr/bin/spark-shell wurde ausgeführt.

Um meine spezifische Spark-Shell aufzurufen, führte ich den folgenden Befehl aus der eigenen Funkenquelle aus -

./bin/spark-shell

0 für die Antwort № 3

Anstatt von spark-1.5.0-bin-without-hadoop.tgz Laden Sie einen der Builds für Hadoop 2.x herunter. Sie sind einfacher einzurichten, da sie mit den Hadoop-Clientbibliotheken geliefert werden.