Estou recebendo o seguinte erro ao iniciar o namenode para a versão mais recente do hadoop-2.2. Não encontrei o arquivo exe winutils na pasta hadoop bin. Eu tentei os comandos abaixo
$ 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.<clinit>(Shell.java:293)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863)
Respostas:
Solução Simples: Baixe aqui e adicione ao
$HADOOP_HOME/bin
( Fonte )
ATUALIZAÇÃO IMPORTANTE:
Para o hadoop-2.6.0, você pode baixar os binários do blog Titus Barik >> .
Eu não apenas precisei apontar
HADOOP_HOME
para o diretório extraído[path]
, mas também fornecer propriedade do sistema-Djava.library.path=[path]\bin
para carregar libs nativas (dll).fonte
Se você enfrentar esse problema ao executar um aplicativo local autocontido com Spark (ou seja, depois de adicionar spark-assembly-xxx-hadoopx.xxjar ou a dependência Maven ao projeto), uma solução mais simples seria colocar winutils.exe (download a partir daqui ) em "C: \ winutil \ bin". Em seguida, você pode adicionar winutils.exe ao diretório inicial do hadoop adicionando a seguinte linha ao código:
Fonte: Clique aqui
fonte
hadoop/bin/bin/
. Então, basta copiar abin
pasta winutils na pasta hadoopbin
. (HADOOP_HOME
é definido no env vars)System.setProperty("hadoop.home.dir", "c:\\winutil\\")
Se pegarmos diretamente a distribuição binária do Apache Hadoop versão 2.2.0 e tentarmos executá-la no Microsoft Windows, encontraremos ERROR util.Shell: Falha ao localizar o binário winutils no caminho binário 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). Eles são necessários (não opcionais) para executar o Hadoop no Windows.
Portanto, você precisa criar uma 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 do hadoop. Você também pode seguir as postagens a seguir para obter um guia passo a passo com captura de tela
Crie, instale, configure e execute o Apache Hadoop 2.2.0 no sistema operacional Microsoft Windows
ERROR util.Shell: Falha ao localizar o binário winutils no caminho binário hadoop
fonte
A instruçã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 substituir uma variável de ambiente. Se você ver o código-fonte em Shell.Java em Common Package, você descobrirá que a variável HADOOP_HOME não está sendo definida e que você está recebendo null no lugar dela e, portanto, o erro.
Portanto, HADOOP_HOME precisa ser definido para isso corretamente ou a propriedade hadoop.home.dir variável.
Espero que isto ajude.
Obrigado, Kamleshwar.
fonte
Winutils.exe é usado para executar os comandos shell do SPARK. Quando você precisa executar o Spark sem instalar o Hadoop, você precisa deste arquivo.
As etapas são as seguintes:
Baixe o winutils.exe do seguinte local para hadoop 2.7.1 https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [NOTA: Se você estiver usando uma versão separada do hadoop, faça o download do winutils da pasta correspondente da versão do hadoop no GITHUB do local mencionado acima.]
Agora, crie uma pasta 'winutils' na unidade C: \. Agora crie uma pasta 'bin' dentro da pasta 'winutils' e copie o winutils.exe para essa pasta. Portanto, a localização do winutils.exe será C: \ winutils \ bin \ winutils.exe
Agora, abra a variável de ambiente e defina HADOOP_HOME = C: \ winutils [NOTA: não adicione \ bin em HADOOP_HOME e não há necessidade de definir HADOOP_HOME no caminho]
Seu problema deve ser resolvido !!
fonte
Acabei de encontrar esse problema enquanto trabalhava com o Eclipse. No meu caso, baixei a versão correta do Hadoop (hadoop-2.5.0-cdh5.3.0.tgz), extraí o conteúdo e coloquei-o diretamente no meu drive C. Então eu fui para
Eclipse-> Configurações de depuração / execução -> Ambiente (guia) -> e adicionado
variável: HADOOP_HOME
Valor: C: \ hadoop-2.5.0-cdh5.3.0
fonte
Você pode baixar winutils.exe aqui: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
Em seguida, copie-o para o seu
HADOOP_HOME/bin
diretório.fonte
No Pyspark, para executar o aplicativo Spark local usando o Pycharm, use as linhas abaixo
fonte
winutils.exe são necessários para que o hadoop execute comandos relacionados ao hadoop. faça o download do arquivo zip hadoop-common-2.2.0. winutils.exe pode ser encontrado na pasta bin. Extraia o arquivo zip e copie-o na pasta hadoop / bin local.
fonte
Eu estava enfrentando o mesmo problema. Remover o
bin\
do caminho HADOOP_HOME resolveu para mim. O caminho para a variável HADOOP_HOME deve ser semelhante a.Pode ser necessário reiniciar o sistema. No meu caso, reiniciar o IDE foi suficiente.
fonte
Configure a variável HADOOP_HOME no Windows para resolver o problema.
Você pode encontrar a resposta em
org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java
:IOException de
HADOOP_HOME_DIR de
fonte
da URL:
https://github.com/steveloughran/winutils/hadoop-
version
/ binNota: Você deve definir as variáveis ambientais:
Variável de usuário:
Variável : HADOOP_HOME
Valor : Hadoop ou dir spark
fonte
Eu estava tendo o mesmo problema no Windows. Eu consertei por
fonte
Baixe a versão desejada da pasta hadoop (digamos que se você está instalando o Spark no Windows, então a versão do hadoop para a qual o Spark foi criado) neste link como zip.
Extraia o zip para o diretório desejado. Você precisa ter o diretório do formulário
hadoop\bin
(criar explicitamente essahadoop\bin
estrutura de diretório, se desejar)bin
contendo todos os arquivos contidos nabin
pasta do hadoop baixado. Ele conterá muitos arquivos, como hdfs.dll, hadoop.dll etc., além de winutil.exe.Agora crie uma variável de ambiente
HADOOP_HOME
e defina-a como<path-to-hadoop-folder>\hadoop
. Em seguida, adicione;%HADOOP_HOME%\bin;
àPATH
variável de ambiente.Abra um "novo prompt de comando" e tente executar novamente o seu comando.
fonte
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 definir 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, eu preferi usar a ferramenta de plataforma cruzada cygwin para definir a funcionalidade do sistema operacional do linux (tanto quanto possível) porque a equipe do Hbase recomenda env linux / unix.
fonte