【发布时间】:2014-06-25 06:18:08
【问题描述】:
首先,我几乎没有 Apache Hadoop 和 Apache Spark 方面的经验。
我现在想要的如下:
- Hadoop 在 Hortonworks Sandbox 2.1 上运行,后者安装在 Windows 7 计算机上。
- Spark shell 和 Spark 程序在 Windows 7 机器上运行,与上面的机器是同一台机器。
- Spark shell 和 Spark 程序可以在 Hortonworks Sandbox 2.1 上使用 Hadoop。
我想在 Windows 上运行 Spark 的原因是,我想在我熟悉的 Windows 7 机器上开发 Spark 程序。
安装 Hortonworks Sandbox 2.1 非常简单。
然后我尝试在 Windows 7 机器上构建 Spark,如下所示:
- 安装 JDK 7、Git、sbt(JDK 8 不适用于 sbt,至少目前:2014.5.8)
-
git clone git://github.com/apache/spark.git(当 SPARK_YARN=true 时,spark-0.9.1 无法与 Hadoop 2.4.0 一起编译,如 https://issues.apache.org/jira/browse/SPARK-1465 中所述) - 运行
cmd -
cd到 spark 根目录 -
set SPARK_HADOOP_VERSION=2.4.0(Hortonworks Sandbox 2.1 上的 Hadoop 为 2.4.0.2.1.1.0-385) set SPARK_YARN=truesbt assembly
完成。成功。
但是当我运行 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 Sandbox 2.1 上的 Hadoop?
欢迎提出任何建议。
【问题讨论】:
标签: linux windows hadoop apache-spark hortonworks-data-platform