Ubuntu16.04でSpark 2.1.0、Hive 2.1.1、Hadoop2.7.3を実行しています。
Sparkプロジェクトをgithubからダウンロードし、「hadoopなし」バージョンをビルドします。
./dev/make-distribution.sh --name "hadoop2-without-Hive" --tgz "-Pyarn、hadoop-provided、hadoop-2.7、parquet-provided"
./sbin/start-master.sh
を実行すると、次の例外が発生します。
Spark Command: /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java -cp /home/server/spark/conf/:/home/server/spark/jars/*:/home/server/hadoop/etc/hadoop/:/home/server/hadoop/share/hadoop/common/lib/:/home/server/hadoop/share/hadoop/common/:/home/server/hadoop/share/hadoop/mapreduce/:/home/server/hadoop/share/hadoop/mapreduce/lib/:/home/server/hadoop/share/hadoop/yarn/:/home/server/hadoop/share/hadoop/yarn/lib/ -Xmx1g org.Apache.spark.deploy.master.Master --Host ThinkPad-W550s-Lab --port 7077 --webui-port 8080
========================================
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" Java.lang.NoClassDefFoundError: org/slf4j/Logger
at Java.lang.Class.getDeclaredMethods0(Native Method)
at Java.lang.Class.privateGetDeclaredMethods(Class.Java:2701)
at Java.lang.Class.privateGetMethodRecursive(Class.Java:3048)
at Java.lang.Class.getMethod0(Class.Java:3018)
at Java.lang.Class.getMethod(Class.Java:1784)
at Sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.Java:544)
at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:526)
Caused by: Java.lang.ClassNotFoundException: org.slf4j.Logger
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
... 7 more
投稿に従ってSPARK_DIST_CLASSPATHを編集します hadoop2のhadoopjarファイルはどこにありますか?
export SPARK_DIST_CLASSPATH=~/hadoop/share/hadoop/common/lib:~/hadoop/share/hadoop/common:~/hadoop/share/hadoop/mapreduce:~/hadoop/share/hadoop/mapreduce/lib:~/hadoop/share/hadoop/yarn:~/hadoop/share/hadoop/yarn/lib
しかし、それでも同じエラーが発生します。 slf4jjarファイルが~/hadoop/share/hadoop/common/lib
の下にあることがわかります。
このエラーを修正するにはどうすればよいですか?
ありがとうございました!
「Hadoopフリー」ビルドでは、SPARK_DIST_CLASSPATHを変更してHadoopのパッケージjarを含める必要があります。これを行う最も便利な場所は、conf /spark-env.shにエントリを追加することです。
export SPARK_DIST_CLASSPATH = $(/ path/to/hadoop/bin/hadoop classpath)
これを確認してください https://spark.Apache.org/docs/latest/hadoop-provided.html