我已经下载了不带Hadoop的Spark 1.4.0预编译版本(使用用户提供的Hadoop)。当我运行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
我在网上搜索了一下,说是 spark-env.cmd 中还没有设置 HADOOP_HOME。但是在 Spark 安装文件夹中找不到 spark-env.cmd。
我追踪了 spark-shell 命令,似乎里面没有 HADOOP_CONFIG。我尝试将 HADOOP_HOME 添加到环境变量中,但仍然出现相同的异常。
实际上我并没有真正使用 hadoop。我按照这个问题的建议下载了 hadoop 作为解决方法。
我使用的是 Windows 8 和 Scala 2.10。
任何帮助都将不胜感激。谢谢。