Запуск 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 находятся в 'бин папка)