Как разрешить Apache Spark в Windows получать доступ к Hadoop в Linux?

Во-первых, у меня почти нет опыта работы с Apache Hadoop и Apache Spark.

На данный момент я хочу следующее:

  • Hadoop работает в песочнице Hortonworks Sandbox 2.1, установленной на компьютере с Windows 7.
  • Оболочка Spark и программы Spark работают на компьютере с Windows 7, который является тем же компьютером, что и выше.
  • Оболочка Spark и программы Spark могут использовать Hadoop в Hortonworks Sandbox 2.1.

Причина, по которой я хочу запускать Spark в Windows, заключается в том, что я хочу разрабатывать программы Spark на машине с Windows 7, которая мне знакома.

Установка Hortonworks Sandbox 2.1 была простой.

Затем я попытался собрать Spark на машине с Windows 7 следующим образом:

  • Установите JDK 7, Git, sbt (JDK 8 не работает для sbt, по крайней мере, на данный момент: 2014.5.8)
  • git clone git://github.com/apache/spark.git (spark-0.9.1 не компилируется с Hadoop 2.4.0, если SPARK_YARN=true, как описано в https://issues.apache.org/jira/browse/SPARK-1465)
  • Беги cmd
  • cd для запуска корневого каталога
  • set SPARK_HADOOP_VERSION=2.4.0 (Hadoop в Hortonworks Sandbox 2.1 — 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 требуется winutil.exe.
Я обнаружил, что winutils.exe является частью Hadoop, но он не был включен в стандартный готовый дистрибутив.
Поэтому я собрал Hadoop для Windows.
С некоторыми трудностями, Мне удалось собрать hadoop-2.4.0.tar.gz, который включает winutils.exe и Hadoop.dll.

Но... я не знаю, что теперь делать.
Как мне установить или применить встроенный пакет Hadoop, чтобы Spark мог получить доступ к Hadoop в тестовой среде Hortonworks 2.1?

Любые предложения приветствуются.


person zeodtr    schedule 08.05.2014    source источник


Ответы (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.

person zeodtr    schedule 18.06.2014