Spark的Java-Eclipse依赖性错误

时间:2014-11-12 22:05:55

标签: java eclipse maven apache-spark

所以我可能会误解Spark是如何完全运作的...但是这里有。

我正在研究(纯)Java中的项目,使用Eclipse作为我的IDE。我想使用Spark,因为我有一些部分需要机器学习。 我尝试按照提供的方式下载Spark,但是没有可以导入的方便的jar文件,所以这不起作用。尝试导入单个java文件完全失败,因为它无法找到关键部分...... 所以我学习了Maven,并尝试使用Maven下载Core,列出的方式..

groupId = org.apache.spark
artifactId = spark-core_2.10
version = 1.1.0

但是,我的项目无法编译,因为它们存在依赖性问题,而其他问题...... 例如,如果你导入核心(就像我做的那样),它就找不到“累加器”。这个文件应该存在,因为它在API(http://spark.apache.org/docs/latest/api/java/index.html)上可见,但不在其他任何地方......

不知道如何继续,将不胜感激。

PS:Windows。对不起。

3 个答案:

答案 0 :(得分:3)

我希望能够在Windows上使用纯Java运行Spark,所以这就是你需要的

  • 从http://spark.apache.org/downloads.html下载Spark 1.3.0二进制文件
  • 选择预构建的Hadoop 2.4及更高版本
  • 解压缩并添加
    ..\spark-1.3.0-bin-hadoop2.4\spark-assembly-1.3.0-hadoop2.4.0.jar
    作为Java项目的外部jar引用

使用Java开始使用Spark的最快方法是运行

中的JavaWordCount示例
..spark-1.3.0-bin-hadoop2.4\examples\src\main\java\org\apache\spark\examples\JavaWordCount.java

修复错误

Exception in thread "main" org.apache.spark.SparkException: A master URL must be set in your configuration

SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
替换

SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount").setMaster("local[2]").set("spark.executor.memory","1g");
行 就是这样,尝试使用Eclipse运行就可以获得成功。如果您看到以下错误:

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:318)

忽略,向下滚动控制台,你会看到每行的输入文本文件行,然后是一个单词计数器。

这是使用Windows操作系统开始使用Spark的快速方法,无需担心安装Hadoop,只需在Windows上使用JDK 6和Eclipse

答案 1 :(得分:0)

您是否在eclipse(M2Eclipse)中安装了Maven支持?你添加了:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>1.1.0</version>
</dependency>

到pom.xml文件的元素元素?

当所有这一切都成立时,你应该看到&#34; Maven Dependencies&#34;包含各种spark依赖项的classpath容器,以及确实包含org.apache.spark.Accumulator类的spark-core_2.10-1.1.0.jar。

答案 2 :(得分:0)

好的,我只是愚蠢。无论如何,当我选择使用Maven Dependecy加法器下载的东西时,我需要进入子选项卡,并选择我想要的Jar版本。如果我没有这样做(我没有这样做),那么它只是...没有下载实际的罐子,只是其他一切......