Запуск Apache Hadoop 2.1.0 в Windows

Я новичок в Hadoop и столкнулся с проблемами, пытаясь запустить его на моем компьютере с Windows 7. Особенно меня интересует запуск Hadoop 2.1.0 в качестве егозаметки о выпуске упомянуть, что работает на Windows поддерживается. Я знаю, что могу попытаться запустить версии 1.x в Windows с Cygwin или даже использовать подготовленную виртуальную машину, например, с помощью Cloudera, но в некоторых случаях эти варианты для меня менее удобны.

Изучив тарболл изhttp://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/ Я обнаружил, что действительно есть некоторые * .cmd скрипты, которые можно запускать без Cygwin. Все работало нормально, когда я формировал раздел HDFS, но когда я попытался запустить hdfs namenode daemon, я столкнулся с двумя ошибками: во-первых, не фатально, что winutils.exe не мог быть найден (это действительноприсутствует в загруженном архиве). Я нашел источники этого компонента в дереве исходников Apache Hadoop и скомпилировал его с помощью Microsoft SDK и MSbuild. Благодаря подробному сообщению об ошибке стало ясно, куда поместить исполняемый файл, чтобы удовлетворить Hadoop. Но вторая ошибка, которая является фатальной, нене может содержать достаточно информации для решения:

13/09/05 10:20:09 FATAL namenode.NameNode: Exception in namenode join
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
    at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:423)
    at org.apache.hadoop.fs.FileUtil.canWrite(FileUtil.java:952)
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:451)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:282)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:200)
...
13/09/05 10:20:09 INFO util.ExitUtil: Exiting with status 1

Похоже, что-то еще должно быть скомпилировано. Я'я собираюсь попытаться построить Hadoop из источника с Maven, но это не такЕсть ли более простой способ? Isn»Есть ли какая-нибудь опция, которую я не знаю, которая может отключить нативный код и сделать этот архив доступным для Windows?

Спасибо.

ОБНОВЛЕНО. Да, в самом деле. "Homebrew» Пакет содержал некоторые дополнительные файлы, наиболее важные из которых winutils.exe и hadoop.dll. С этими файлами namenode и datanode запустились успешно. Я думаю, что вопрос может быть закрыт. Я не'удалить его, если кто-то сталкивается с такой же трудностью.

ОБНОВЛЕНО 2. Построитьдоморощенный» Пакет я сделал следующим образом:

Получил исходники и распаковал их.Прочитайте внимательно BUILDING.txt.Установленные зависимости:

3a) Windows SDK 7.1

3b) Maven (я использовал 3.0.5) 3c) JDK (я использовал 1.7.25)

3d) ProtocolBuffer (я использовал 2.5.0 -http://protobuf.googlecode.com/files/protoc-2.5.0-win32.zip). Достаточно просто поместить компилятор (protoc.exe) в некоторые из папок PATH.

3e) Набор инструментов командной строки UNIX (я установил Cygwin)Запущена командная строка Windows SDK. Начало | Все программы | Microsoft Windows SDK v7.1 | ... Командная строка (я изменил этот ярлык, добавив параметр / выпуск в командной строке для создания версий выпуска собственного кода). Все последующие шаги выполняются из окна командной строки SDK)

Настройте среду:

set JAVA_HOME = {path_to_JDK_root}

Кажется, что JAVA_HOMEНЕ ДОЛЖЕН содержать пространство!

set PATH={path_to_maven_bin};%PATH%  
set Platform=x64  
set PATH={path_to_cygwin_bin};%PATH%  
set PATH={path_to_protoc.exe};%PATH%  
Изменен каталог dir для корневой папки источников (BUILDING.txt предупреждает, что существуют некоторые ограничения на длину пути, поэтому источник root должен иметь короткое имя - я использовал D: \ hds)

Запустил процесс строительства:

пакет mvn -Pdist -DskipTests

Вы можете попробовать безskipTests' но на моей машине некоторые тесты не прошли, и сборка была прекращена. Это может быть связано с проблемами символической ссылки, упомянутыми в BUILDING .txt. 8. Выбрал результат в hadoop-dist \ target \ hadoop-2.1.0-beta (исполняемые файлы Windows и DLL находятся в 'бин папка)

Ответы на вопрос(12)

Ваш ответ на вопрос