我已经下载了没有hadoop的预装版本的spark 1.4.0(用户提供的Haddop).当我运行spark-shell命令时,我收到了这个错误:
> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/
FSDataInputStream
at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSpa
rkProperties$1.apply(SparkSubmitArguments.scala:111)
at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSpa
rkProperties$1.apply(SparkSubmitArguments.scala:111)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.deploy.SparkSubmitArguments.mergeDefaultSparkPropert
ies(SparkSubmitArguments.scala:111)
at org.apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArgume
nts.scala:97)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:106)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FSDataInputStr
eam
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 7 more
Run Code Online (Sandbox Code Playgroud)
我在互联网上搜索过,据说HADOOP_HOME尚未在spark-env.cmd中设置.但我在spark安装文件夹中找不到spark-env.cmd.我已经跟踪了spark-shell命令,似乎那里没有HADOOP_CONFIG.我试图在环境变量上添加HADOOP_HOME,但它仍然提供相同的异常.
其实我并没有真正使用hadoop.我按照这个问题的建议下载了hadoop作为解决方法
我使用的是Windows 8和scala 2.10.
任何帮助将不胜感激.谢谢.
tih*_*iho 41
Spark的构建名称中的"without Hadoop"具有误导性:它意味着构建不依赖于特定的Hadoop发行版,而不是没有它的情况下运行:用户应指明在何处查找Hadoop(请参阅https:// spark.apache.org/docs/latest/hadoop-provided.html)
解决此问题的一种简洁方法是:
spark-env.cmd文件(修改Hadoop路径以匹配您的安装):
@echo off
set HADOOP_HOME=D:\Utils\hadoop-2.7.1
set PATH=%HADOOP_HOME%\bin;%PATH%
set SPARK_DIST_CLASSPATH=<paste here the output of %HADOOP_HOME%\bin\hadoop classpath>
spark-env.cmd无论是在conf位于同一水平作为你的星火基本文件夹(这可能看起来很怪异)的文件夹,或通过指定的文件夹中SPARK_CONF_DIR的环境变量.Ham*_* MP 19
我有同样的问题,事实上它在Spark的入门页面上提到了如何处理它:
### in conf/spark-env.sh ###
# If 'hadoop' binary is on your PATH
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
# With explicit path to 'hadoop' binary
export SPARK_DIST_CLASSPATH=$(/path/to/hadoop/bin/hadoop classpath)
# Passing a Hadoop configuration directory
export SPARK_DIST_CLASSPATH=$(hadoop --config /path/to/configs classpath)
Run Code Online (Sandbox Code Playgroud)
如果您想使用自己的hadoop,请按照3个选项中的一个选项,将其复制并粘贴到 spark-env.sh文件中:
1-如果你的PATH上有hadoop
2-你想明确地显示hadoop二进制文件
3-你也可以显示hadoop配置文件夹
http://spark.apache.org/docs/latest/hadoop-provided.html
Jim*_*mes 15
我也有这个问题,
export SPARK_DIST_CLASSPATH=`hadoop classpath`
Run Code Online (Sandbox Code Playgroud)
解决了这个问题.
我试图熟悉火花时遇到了同样的错误.我对错误消息的理解是,虽然spark不需要运行hadoop集群,但它确实需要一些hadoop类.由于我只是玩火花并且不关心使用什么版本的hadoop库,我只是下载了一个预先构建的带有hadoop(2.6)版本的spark二进制文件,并且开始工作正常.
小智 5
操作系统
ENV SPARK_DIST_CLASSPATH="$HADOOP_HOME/etc/hadoop/*:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/tools/lib/*"
Run Code Online (Sandbox Code Playgroud)
视窗
set SPARK_DIST_CLASSPATH=%HADOOP_HOME%\etc\hadoop\*;%HADOOP_HOME%\share\hadoop\common\lib\*;%HADOOP_HOME%\share\hadoop\common\*;%HADOOP_HOME%\share\hadoop\hdfs\*;%HADOOP_HOME%\share\hadoop\hdfs\lib\*;%HADOOP_HOME%\share\hadoop\hdfs\*;%HADOOP_HOME%\share\hadoop\yarn\lib\*;%HADOOP_HOME%\share\hadoop\yarn\*;%HADOOP_HOME%\share\hadoop\mapreduce\lib\*;%HADOOP_HOME%\share\hadoop\mapreduce\*;%HADOOP_HOME%\share\hadoop\tools\lib\*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53865 次 |
| 最近记录: |