如何让Windows上的Apache Spark在Linux上访问Hadoop?
首先,我几乎没有关于ApacheHadoop和ApacheSpark的经验 我现在想要的是:如何让Windows上的Apache Spark在Linux上访问Hadoop?,linux,windows,hadoop,apache-spark,hortonworks-data-platform,Linux,Windows,Hadoop,Apache Spark,Hortonworks Data Platform,首先,我几乎没有关于ApacheHadoop和ApacheSpark的经验 我现在想要的是: Hadoop在Hortonworks沙盒2.1上运行,该沙盒安装在Windows7机器上 Spark shell和Spark程序在Windows 7机器上运行,该机器与上述机器相同 Spark shell和Spark程序可以在Hortonworks沙盒2.1上使用Hadoop 我想在Windows上运行Spark的原因是,我想在我熟悉的Windows 7机器上开发Spark程序 安装Hortonwo
- Hadoop在Hortonworks沙盒2.1上运行,该沙盒安装在Windows7机器上
- Spark shell和Spark程序在Windows 7机器上运行,该机器与上述机器相同
- Spark shell和Spark程序可以在Hortonworks沙盒2.1上使用Hadoop
- 安装JDK 7、Git、sbt(JDK 8不适用于sbt,至少目前是这样:2014.5.8)
(如中所述,当spark_-Thread=true时,spark-0.9.1不使用Hadoop 2.4.0编译)git克隆git://github.com/apache/spark.git
- 运行
cmd
到spark根目录cd
(Hortonworks沙盒2.1上的HADOOP是2.4.0.2.1.1.0-385)设置SPARK\u HADOOP\u VERSION=2.4.0
set SPARK\u warn=true
sbt组件
但是当我运行bin\spark shell时,出现了以下警告
14/05/08 11:26:15 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/05/08 11:26:15 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
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)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:333)
...
显然spark shell需要winutil.exe。我发现winutils.exe是Hadoop的一部分,但它没有包含在正常的预构建发行版中。
所以我在Windows上构建了Hadoop。
遇到一些麻烦,我设法构建了
hadoop-2.4.0.tar.gz
,其中包括winutils.exe和hadoop.dll。但是。。。我不知道从现在起该怎么办。
如何安装或应用内置的Hadoop包,以便Spark能够在Hortonworks沙盒2.1上访问Hadoop
欢迎提出任何建议。我已成功使用Spark 1.0.0设置了上述配置 这有点长,但大多数问题都与配置有关。也许一个有经验的Spark+Hadoop开发人员不会有问题,除了下面我要写的那一个。
上面的问题是针对Spark 0.9.1的,它现在已经过时了,所以回答它没什么用 但有一个问题是跨平台问题,仍然适用于Spark 1.0.0。
我已经为它创建了一个拉取请求:
如果感兴趣,请点击链接 更新:上述跨平台问题已在1.3.0版上解决