Falha ao localizar o binário winutils no caminho binário do hadoop

Estou recebendo o seguinte erro ao iniciar o namenode para o lançamento mais recente do hadoop-2.2. Eu não encontrei o arquivo winutils exe na pasta hadoop bin. Eu tentei abaixo dos comandos

$ bin/hdfs namenode -format $ sbin/yarn-daemon.sh start resourcemanager ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - 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:278) at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300) at org.apache.hadoop.util.Shell.(Shell.java:293) at org.apache.hadoop.util.StringUtils.(StringUtils.java:76) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863) 

Solução simples : faça o download aqui e adicione a $HADOOP_HOME/bin

(Fonte: Clique aqui )

EDITAR:

Para hadoop-2.6.0 você pode baixar binários do blog Titus Barik >> .

Eu não precisei apenas apontar o HADOOP_HOME para o diretório extraído [path] , mas também fornecer a propriedade do sistema -Djava.library.path=[path]\bin para carregar libs nativas (dll).

Se pegarmos diretamente a distribuição binária da versão 2.2.0 do Apache Hadoop e tentarmos executá-la no Microsoft Windows, encontraremos o utilitário ERROR. Shell: Falha ao localizar o binário winutils no caminho binário do hadoop.

A distribuição binária da versão 2.2.0 do Apache Hadoop não contém alguns componentes nativos do Windows (como winutils.exe, hadoop.dll etc). São necessários (não opcionais) para executar o Hadoop no Windows.

Portanto, você precisa construir a distribuição binária nativa do windows do hadoop a partir dos códigos fonte, seguindo o arquivo “BUILD.txt” localizado dentro da distribuição fonte do hadoop. Você pode seguir os seguintes posts também para o guia passo a passo com captura de canvas

Crie, instale, configure e execute o Apache Hadoop 2.2.0 no sistema operacional Microsoft Windows

ERRO: util.Shell: Falha ao localizar o binário winutils no caminho binário do hadoop

Se você enfrentar esse problema ao executar um aplicativo local autônomo com o Spark (ou seja, após adicionar o spark-assembly-xxx-hadoopx.xxjar ou a dependência do Maven ao projeto), uma solução mais simples seria colocar o winutils.exe (download daqui ) em “C: \ winutil \ bin”. Em seguida, você pode adicionar o winutils.exe ao diretório inicial do hadoop, adicionando a seguinte linha ao código:

 System.setProperty("hadoop.home.dir", "c:\\\winutil\\\") 

Fonte: Clique aqui

A declaração java.io.IOException: Não foi possível localizar o executável null \ bin \ winutils.exe

explica que o nulo é recebido ao expandir ou replace uma variável de ambiente. Se você vir Source em Shell.Java em Common Package, verá que a variável HADOOP_HOME não está sendo configurada e você está recebendo null no lugar dela e, portanto, o erro.

Portanto, o HADOOP_HOME precisa ser configurado para essa propriedade corretamente ou a variável hadoop.home.dir.

Espero que isto ajude.

Obrigado, Kamleshwar.

Acabei de me deparar com este problema ao trabalhar com o Eclipse. No meu caso, tive a versão correta do Hadoop baixada (hadoop-2.5.0-cdh5.3.0.tgz), extraí o conteúdo e o coloquei diretamente na minha unidade C. Então eu fui para

Eclipse-> Depurar / Executar Configurações -> Ambiente (guia) -> e adicionado

variável: HADOOP_HOME

Valor: C: \ hadoop-2.5.0-cdh5.3.0

Você pode baixar winutils.exe aqui: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe

Em seguida, copie-o para o diretório HADOOP_HOME/bin .

O winutils.exe é necessário para que o hadoop execute comandos relacionados ao hadoop. faça o download do arquivo zdo hadoop-common-2.2.0. O winutils.exe pode ser encontrado na pasta bin. Extraia o arquivo zip e copie-o na pasta local hadoop / bin.

Eu estava enfrentando o mesmo problema. Remover o bin\ do caminho HADOOP_HOME resolveu isso para mim. O caminho para a variável HADOOP_HOME deve ser algo parecido.

 C:\dev\hadoop2.6\ 

A reboot do sistema pode ser necessária. No meu caso, reiniciar o IDE foi suficiente.

Configure a variável HADOOP_HOME no Windows para resolver o problema.

Você pode encontrar resposta em org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java :

IOException from

  public static final String getQualifiedBinPath(String executable) throws IOException { // construct hadoop bin path to the specified executable String fullExeName = HADOOP_HOME_DIR + File.separator + "bin" + File.separator + executable; File exeFile = new File(fullExeName); if (!exeFile.exists()) { throw new IOException("Could not locate executable " + fullExeName + " in the Hadoop binaries."); } return exeFile.getCanonicalPath(); } 

HADOOP_HOME_DIR de

 // first check the Dflag hadoop.home.dir with JVM scope String home = System.getProperty("hadoop.home.dir"); // fall back to the system/user-global env variable if (home == null) { home = System.getenv("HADOOP_HOME"); } 

Eu estava recebendo o mesmo problema no Windows. Eu consertei por

  • Baixando o hadoop-common-2.2.0-bin-master a partir do link .
  • Crie uma variável de usuário HADOOP_HOME na variável Environment e atribua o caminho do diretório bin hadoop-common como um valor.
  • Você pode verificar isso rodando o hadoop no cmd.
  • Reinicie o IDE e execute-o.

Baixe a versão desejada da pasta hadoop (Dizer se você está instalando faísca no Windows, em seguida, versão hadoop para o qual sua faísca é construída para) a partir deste link como zip.

Extraia o zip para o diretório desejado. Você precisa ter o diretório do formulário hadoop\bin (crie explicitamente tal estrutura de diretórios hadoop\bin se quiser) com bin contendo todos os arquivos contidos na pasta bin do hadoop baixado. Isto irá conter muitos arquivos, como hdfs.dll, hadoop.dll etc, além de winutil.exe.

Agora crie a variável de ambiente HADOOP_HOME e configure-a para \hadoop . Em seguida, adicione ;%HADOOP_HOME%\bin; para a variável de ambiente PATH .

Abra um “novo prompt de comando” e tente executar novamente seu comando.

  1. Download [winutils.exe]
    A partir do URL:
    https://github.com/steveloughran/winutils/hadoop- version / bin
  2. Passado sob HADOOP_HOME / bin
    Nota: Você deve definir variables ​​ambientais:
    Variável de usuário:
    Variável : HADOOP_HOME
    Valor : Hadoop ou spark dir

Eu usei as versões “hbase-1.3.0” e “hadoop-2.7.3”. Definir a variável de ambiente HADOOP_HOME e copiar o arquivo ‘winutils.exe’ na pasta HADOOP_HOME / bin resolve o problema em um sistema operacional Windows. Atenção para configurar o ambiente HADOOP_HOME para a pasta de instalação do hadoop (a pasta / bin não é necessária para essas versões). Além disso, preferi usar o cygwin de plataforma cruzada para resolver a funcionalidade do linux os (o máximo possível) porque o time do Hbase recomendava env linux / unix.