Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有Hadoop的Spark:无法启动_Hadoop_Apache Spark_Hive - Fatal编程技术网

没有Hadoop的Spark:无法启动

没有Hadoop的Spark:无法启动,hadoop,apache-spark,hive,Hadoop,Apache Spark,Hive,我正在Ubuntu 16.04上运行Spark 2.1.0、Hive 2.1.1和Hadoop 2.7.3 我从github下载Spark项目并构建“没有hadoop”版本: ./dev/make-distribution.sh——名称为“没有配置单元的hadoop2”——tgz -Pyarn,提供hadoop,hadoop-2.7,提供拼花地板 当我运行/sbin/start master.sh时,我得到以下异常: Spark Command: /usr/lib/jvm/java-8-ope

我正在Ubuntu 16.04上运行Spark 2.1.0、Hive 2.1.1和Hadoop 2.7.3

我从github下载Spark项目并构建“没有hadoop”版本:

./dev/make-distribution.sh——名称为“没有配置单元的hadoop2”——tgz -Pyarn,提供hadoop,hadoop-2.7,提供拼花地板

当我运行
/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\u DIST\u类路径

但我还是犯了同样的错误。 我可以看到slf4jjar文件位于
~/hadoop/share/hadoop/common/lib

如何修复此错误


谢谢大家!

“Hadoop免费”版本需要修改
SPARK\u DIST\u CLASSPATH
以包含Hadoop的包jar

最方便的方法是在
conf/spark env.sh
中添加一个条目:

export SPARK_DIST_CLASSPATH=$(/path/to/hadoop/bin/hadoop classpath)  

选中此项

尝试不要在变量中放入
~
paths@cricket_007我用“/home/server”替换了“~”,但仍然出现错误。我不确定为什么变量的值这么长。我是大数据新手,如果我错了,请纠正我。我相信我提到过在hadoop2中,所有jar文件都在不同的类路径中。我之前尝试过,我刚刚意识到我应该在同一个终端中运行
conf/spark env.sh
/sbin/start master.sh
,而不是在两个终端选项卡中。问题现在解决了。谢谢!
export SPARK_DIST_CLASSPATH=$(/path/to/hadoop/bin/hadoop classpath)