web-dev-qa-db-fra.com

Impossible de localiser le fichier binaire winutils dans le chemin binaire hadoop

Le message d'erreur suivant s'affiche lors du démarrage de namenode pour la dernière version de hadoop-2.2. Je n'ai pas trouvé le fichier exe winutils dans le dossier hadoop bin. J'ai essayé ci-dessous les commandes

$ 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)
99
user2925491

Solution simple : Téléchargez-le de ici et ajoutez-le à $HADOOP_HOME/bin

(Source: Cliquez ici )

MODIFIER:

Pour hadoop-2.6.0 , vous pouvez télécharger des fichiers binaires à partir de blog Titus Barik >> .

J'ai non seulement besoin de pointer HADOOP_HOME vers le répertoire extrait [path], mais également de fournir la propriété système -Djava.library.path=[path]\bin pour charger les bibliothèques natives (dll).

93
Prasad D

Si nous prenons directement la distribution binaire de la version Apache Hadoop 2.2.0 et essayons de l'exécuter sous Microsoft Windows, nous rencontrerons alors ERROR util.Shell: Impossible de localiser le fichier binaire winutils dans le chemin binaire hadoop.

La distribution binaire de la version Apache Hadoop 2.2.0 ne contient pas certains composants natifs de Windows (tels que winutils.exe, hadoop.dll, etc.). Celles-ci sont obligatoires (et non facultatives) pour exécuter Hadoop sous Windows.

Vous devez donc créer la distribution binaire native hadoop de Windows à partir des codes sources, à la suite du fichier "BUILD.txt" situé dans la distribution source de Hadoop. Vous pouvez également suivre les articles suivants pour obtenir un guide étape par étape avec capture d'écran.

Construire, installer, configurer et exécuter Apache Hadoop 2.2.0 sous Microsoft Windows

ERREUR util.Shell: Impossible de localiser le binaire winutils dans le chemin binaire hadoop

27
Abhijit

Si vous rencontrez ce problème lorsque vous exécutez une application locale autonome avec Spark (après l'ajout de spark-Assembly-xxx-hadoopx.xxjar ou de la dépendance Maven au projet), une solution plus simple serait: mettre winutils.exe (à télécharger depuis ici ) dans "C:\winutil\bin". Ensuite, vous pouvez ajouter winutils.exe au répertoire de base hadoop en ajoutant la ligne suivante au code:

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

Source: Cliquez ici

26
TrnKh

L'instruction Java.io.IOException: impossible de localiser l'exécutable null\bin\winutils.exe

explique que la valeur NULL est reçue lors du développement ou du remplacement d'une variable d'environnement. Si vous voyez la source dans Shell.Java dans Common Package, vous constaterez que la variable HADOOP_HOME n'est pas définie et que vous recevez la valeur null à la place de celle-ci, d'où l'erreur.

Donc, HADOOP_HOME doit être défini correctement pour cela ou la propriété hadoop.home.dir de variable.

J'espère que cela t'aides.

Merci, Kamleshwar.

17
Kamleshwar

Je viens de rencontrer ce problème lorsque je travaillais avec Eclipse. Dans mon cas, j'avais la version correcte de Hadoop téléchargée (hadoop-2.5.0-cdh5.3.0.tgz), j'ai extrait le contenu et l'ai placé directement dans mon lecteur C. Puis je suis allé à

Eclipse-> Configurations de débogage/exécution -> Environnement (onglet) -> et ajouté

variable: HADOOP_HOME

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

11
Daniel Epstein

Vous pouvez télécharger winutils.exe ici: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe

Ensuite, copiez-le dans votre répertoire HADOOP_HOME/bin.

7
Soumya Kanti

Winutils.exe est utilisé pour exécuter les commandes Shell pour SPARK. Si vous devez exécuter Spark sans installer Hadoop, vous avez besoin de ce fichier.

Les étapes sont les suivantes:

  1. Téléchargez le fichier winutils.exe à partir de l’emplacement suivant pour hadoop 2.7.1 https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [REMARQUE: Si vous utilisez version hadoop séparée, veuillez télécharger les winutils du dossier correspondant à la version hadoop sur GITHUB à partir de l’emplacement mentionné ci-dessus.]

  2. Maintenant, créez un dossier 'winutils' dans le lecteur C: \. Maintenant, créez un dossier 'bin' dans le dossier 'winutils' et copiez le winutils.exe dans ce dossier. Donc, l'emplacement de winutils.exe sera C:\winutils\bin\winutils.exe

  3. Maintenant, ouvrez la variable d’environnement et définissez HADOOP_HOME = C:\winutil [NOTE: Veuillez ne pas ajouter \bin dans HADOOP_HOME et il n'est pas nécessaire de définir HADOOP_HOME dans Path.]

Votre problème doit être résolu !!

3
Anurag

Dans Pyspark, pour exécuter une application locale spark à l'aide de Pycharm, utilisez les lignes ci-dessous.

os.environ['HADOOP_HOME'] = "C:\\winutils"
print os.environ['HADOOP_HOME']
2
Narsireddy

winutils.exe est requis pour que hadoop puisse exécuter les commandes relatives à hadoop. s'il vous plaît télécharger le fichier zip hadoop-common-2.2.0. winutils.exe se trouve dans le dossier bin. Extrayez le fichier Zip et copiez-le dans le dossier hadoop/bin local.

2
Mohan Raj
  1. Télécharger [winutils.exe]
    À partir de l'URL:
    https://github.com/steveloughran/winutils/hadoop-version/bin
  2. Passé sous HADOOP_HOME/bin
    Remarque: vous devez définir les variables d'environnement:
    Variable utilisateur:
    Variable : HADOOP_HOME
    Valeur : Hadoop ou spark dir
2
Mostafa M.Shawky

Je faisais face au même problème. Supprimer le bin\ du chemin HADOOP_HOME l'a résolu pour moi. Le chemin de la variable HADOOP_HOME devrait ressembler à quelque chose.

C:\dev\hadoop2.6\

Un redémarrage du système peut être nécessaire. Dans mon cas, le redémarrage de IDE était suffisant.

2
Asmat Ali

Configurez la variable HADOOP_HOME dans Windows pour résoudre le problème.

Vous pouvez trouver la réponse dans org/Apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/Apache/hadoop/util/Shell.Java:

IOException de

  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 à partir 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");
}
2
Andy

Téléchargez la version souhaitée du dossier hadoop (Dites si vous installez spark sur Windows, puis la version hadoop pour laquelle votre spark est construit) à partir de this comme Zip .

Extrayez le zip dans le répertoire souhaité. Vous devez disposer d’un répertoire de la forme hadoop\bin (créez explicitement cette structure de répertoires hadoop\bin si vous le souhaitez) avec bin contenant tous les fichiers contenus dans le dossier bin du hadoop téléchargé. Cela contiendra de nombreux fichiers tels que hdfs.dll, hadoop.dll, etc. en plus de winutil.exe.

Maintenant, créer une variable d’environnementHADOOP_HOME et définissez-le sur <path-to-hadoop-folder>\hadoop. Alors add;%HADOOP_HOME%\bin; à la variable d'environnement PATH.

Ouvrez une "invite de nouvelle commande" et essayez de réexécuter votre commande.

1
Mahesha999

Je devenais le même problème dans Windows. Je l'ai réparé par

  • Téléchargement de hadoop-common-2.2.0-bin-master depuis link .
  • Créez une variable utilisateur HADOOP_HOME dans la variable d'environnement et affectez le chemin du répertoire bin hadoop-common en tant que valeur.
  • Vous pouvez le vérifier en exécutant hadoop dans cmd.
  • Redémarrez le IDE et exécutez-le.
1
Dipak Shaw

J'ai utilisé les versions "hbase-1.3.0" et "hadoop-2.7.3". La définition de la variable d’environnement HADOOP_HOME et la copie du fichier 'winutils.exe' dans le dossier HADOOP_HOME/bin résolvent le problème sous Windows. Attention de définir l'environnement HADOOP_HOME dans le dossier d'installation de hadoop (le dossier/bin n'est pas nécessaire pour ces versions). De plus, j'ai préféré utiliser l'outil multi-plateforme cygwin pour régler les fonctionnalités Linux (le plus possible) car l'équipe d'Hbase recommande l'utilisation de linux/unix env.

0
mahkras