【问题标题】:How to let Apache Spark on Windows access Hadoop on Linux?如何让 Windows 上的 Apache Spark 访问 Linux 上的 Hadoop?
【发布时间】: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=true
  • sbt 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


    【解决方案1】:

    我已经成功地使用 Spark 1.0.0 设置了上述配置。

    说来话长,但大多数问题都与配置有关。也许一个有经验的 Spark + Hadoop 开发者不会有任何问题,除了我将在下面写的那个。
    而且上面的问题是针对Spark 0.9.1的,现在已经过时了,所以回答的用处不大。

    但一个问题是跨平台问题,并且仍然适用于 Spark 1.0.0。
    我已经为它创建了一个拉取请求:https://github.com/apache/spark/pull/899
    如果有兴趣,请点击链接。

    更新:上述跨平台问题已在 1.3.0 版中得到解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2017-07-08
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多