Executando o Apache Hadoop 2.1.0 no Windows

Sou novo no Hadoop e tive problemas ao tentar executá-lo na minha máquina com Windows 7. Particularmente, estou interessado em executar o Hadoop 2.1.0 comonotas de lançamento mencionar que a execução no Windows é suportada. Eu sei que eu posso tentar executar versões 1.x no Windows com o Cygwin ou até mesmo usar VM preparada por exemplo Cloudera, mas essas opções são em alguns motivos menos convenientes para mim.

Tendo examinado um tarball dehttp://apache-mirror.rbc.ru/pub/apache/hadoop/common/hadoop-2.1.0-beta/ Eu descobri que existem alguns scripts * .cmd que podem ser executados sem o Cygwin. Tudo funcionou bem quando eu formatei a partição HDFS, mas quando eu tentei executar o daemon namenode hdfs eu enfrentei dois erros: primeiro, não fatal, foi que o winutils.exe não pôde ser encontrado (ele realmente não estava presente no arquivo baixado). Eu encontrei as fontes deste componente na árvore de fontes do Apache Hadoop e as compilei com o Microsoft SDK e o MSbuild. Graças à mensagem de erro detalhada, ficou claro onde colocar o executável para satisfazer o Hadoop. Mas o segundo erro que é fatal não contém informações suficientes para eu resolver:

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

Parece que algo mais deveria ser compilado. Vou tentar construir o Hadoop a partir da fonte com o Maven, mas não existe uma maneira mais simples? Não há alguma opção que eu-sei-não-que pode desabilitar o código nativo e tornar esse tarball utilizável no Windows?

Obrigado.

ATUALIZADA. Sim, de fato. "Homebrew" pacote continha alguns arquivos extras, o mais importante winutils.exe e hadoop.dll. Com esses arquivos, o namenode e o datanode foram iniciados com sucesso. Eu acho que a questão pode ser encerrada. Eu não o deletei no caso de alguém enfrentar a mesma dificuldade.

ATUALIZADO 2. Para criar o pacote "homebrew", fiz o seguinte:

Obteve fontes e descompactou-as.Leia atentamente BUILDING.txt.Dependências instaladas:
3a) Windows SDK 7.1
3b) Maven (usei 3.0.5) 3c) JDK (usei 1,7.25)
3d) ProtocolBuffer (eu usei 2.5.0 -http://protobuf.googlecode.com/files/protoc-2.5.0-win32.zip). É suficiente apenas colocar o compilador (protoc.exe) em algumas das pastas PATH.
3e) Um conjunto de ferramentas de linha de comando do UNIX (eu instalei o Cygwin)Linha de comando iniciada do Windows SDK. Comece | Todos os programas | Microsoft Windows SDK v7.1 | ... Prompt de comando (modifiquei este atalho, adicionando opção / release na linha de comando para criar versões de lançamento do código nativo). Todos os próximos passos são feitos dentro da janela de linha de comando do SDK)

Configure o ambiente:

defina JAVA_HOME = {path_to_JDK_root}

Parece que JAVA_HOMENÃO DEVE contenha espaço!

set PATH={path_to_maven_bin};%PATH%  
set Platform=x64  
set PATH={path_to_cygwin_bin};%PATH%  
set PATH={path_to_protoc.exe};%PATH%  
Alterou dir para a pasta raiz de fontes (BUILDING.txt avisa que há algumas limitações no comprimento do caminho, portanto, source roots deve ter nome abreviado - usei D: \ hds)

Ran processo de construção:

pacote mvn -Pdist -DskipTests

Você pode tentar sem 'skipTests', mas na minha máquina alguns testes falharam e a construção foi finalizada. Pode ser conectado a problemas de links simbólicos mencionados em BUILDING .txt. 8. Escolhi o resultado em hadoop-dist \ target \ hadoop-2.1.0-beta (executáveis ​​do windows e dlls estão na pasta 'bin')

questionAnswers(12)

yourAnswerToTheQuestion