N'a pas réussi à localiser le binaire winutils dans le chemin binaire hadoop

j'obtiens l'erreur suivante en démarrant namenode pour la dernière version hadoop-2.2. Je n'ai pas trouvé le fichier winutils exe dans le dossier Hadoop bin. J'ai essayé en dessous des 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 nullbinwinutils.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)
85
demandé sur Leeor 2013-10-27 20:49:39

14 réponses

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

(Source : Cliquez ici )

EDIT:

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

Je n'ai pas seulement eu besoin de pointer HADOOP_HOME pour extraire le répertoire [path] , mais également fournir la propriété du système -Djava.library.path=[path]\bin pour charger libs natifs (dll).

88
répondu Prasad D 2015-10-08 19:05:37

si nous prenons directement la distribution binaire De Apache Hadoop 2.2.0 release et que nous essayons de l'exécuter sur Microsoft Windows, alors nous rencontrerons une erreur util.Shell: N'a pas réussi à localiser le binaire winutils dans le chemin binaire hadoop.

la distribution binaire D'Apache Hadoop 2.2.0 release ne contient pas de composants natifs de windows (comme winutils.exe, hadoop.dll, etc). Ceux-ci sont nécessaires (Pas optionnel) pour exécuter Hadoop sous Windows.

donc vous avez besoin pour construire Windows distribution binaire native de hadoop à partir des codes source suivant "construire.txt " fichier situé à l'intérieur de la distribution source de hadoop. Vous pouvez suivre les messages suivants aussi bien pour le guide étape par étape avec la capture d'écran

construire, Installer, Configurer et exécuter Apache Hadoop 2.2.0 dans Microsoft Windows OS

ERROR util.Shell: échec de la localisation du binaire winutils dans le chemin binaire hadoop

26
répondu Abhijit 2013-11-06 05:02:24

si vous rencontrez ce problème lors de l'exécution d'une application locale autonome avec Spark (i.e., après avoir ajouté spark-assembly-X. x.x-hadoopx.x.x.jar ou la dépendance Maven au projet), une solution plus simple serait de mettre winutils.exe (télécharger de ici ) dans "C:\winutil\bin". Ensuite, vous pouvez ajouter des winutils.exe pour hadoop de répertoire en ajoutant la ligne suivante dans le code:

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

Source: cliquez sur ici

23
répondu TrnKh 2016-01-31 23:48:15

la déclaration java.io.IOException: impossible de localiser l'exécutable null\bin\winutils.exe

explique que null est reçu lors de l'expansion 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 null à sa place et donc l'erreur.

ainsi, HADOOP_HOME doit être défini correctement pour ceci ou la variable hadoop.maison.dir de la propriété.

Espérons que cette aide.

Merci, Kamleshwar.

17
répondu Kamleshwar 2013-11-02 09:04:00

j'ai rencontré ce problème en travaillant avec Eclipse. Dans mon cas, J'ai téléchargé la version Hadoop correcte (hadoop-2.5.0-cdh5.3.0.tgz), j'ai extrait le contenu et placé directement dans mon lecteur C. Puis je suis allé à

Eclipse - > Debug / Run Configurations - > Environment (tab) - > et ajouté

variable: HADOOP_HOME

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

9
répondu Daniel Epstein 2015-05-27 21:02:13

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

Copiez-le dans votre répertoire HADOOP_HOME/bin .

7
répondu Soumya Kanti 2015-08-14 06:29:31

winutils.exe sont nécessaires pour hadoop pour exécuter des commandes associées à hadoop. s'il vous plaît télécharger hadoop-commune-2.2.0 fichier zip. winutils.exe peut être trouvé dans le dossier bin. Extraire le fichier zip et le copier dans le local hadoop/bin.

2
répondu Mohan Raj 2014-10-30 11:51:13

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 comme.

C:\dev\hadoop2.6\
Le redémarrage du système

peut être nécessaire. Dans mon cas, redémarrer l'IDE était suffisant.

2
répondu Asmat Ali 2016-01-07 10:45:47

configure HADOOP_HOME variable 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 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");
}
2
répondu Andy 2016-10-28 10:23:19

j'ai eu le même problème avec windows. Je l'ai fixé par

  • Téléchargement de hadoop-commune-2.2.0-bin-maître de lien .
  • créer une variable d'utilisateur HADOOP_HOME dans la variable D'environnement et assigner le chemin de hadoop-common bin directory comme valeur.
  • Vous pouvez le vérifier en exécutant hadoop dans cmd.
  • redémarrez l'IDE et lancez-le.
1
répondu Dipak Shaw 2017-09-15 06:45:51

télécharger la version désirée du dossier hadoop (par exemple, si vous installez spark sur Windows, alors la version hadoop pour laquelle votre spark est construit) à partir de ce lien zip.

Extraire le zip dans le répertoire désiré. Vous devez avoir le répertoire du formulaire hadoop\bin (créer explicitement une telle structure de répertoire hadoop\bin si vous voulez) avec bin contenant tous les fichiers contenus dans le dossier bin de la hadoop. Il contient de nombreux fichiers tels que hdfs.dll, hadoop.dll, etc. en plus de winutil.EXE.

Maintenant créer la variable d'environnement HADOOP_HOME et réglez <path-to-hadoop-folder>\hadoop . Puis ajouter ;%HADOOP_HOME%\bin; à PATH variable d'environnement.

ouvrez une "invite de nouvelle commande" et essayez de rediriger votre commande.

1
répondu Mahesha999 2018-03-21 09:34:54
  1. Télécharger [winutils.EXE]

    À partir de l'URL :

    https://github.com/steveloughran/winutils/hadoop- version / bin

  2. passé sous HADOOP_HOME / bin

    Note : Vous devez définir les variables d'environnement:

    " utilisateur variable:

    Variable : HADOOP_HOME

    valeur : Hadoop ou spark dir
1
répondu Mostafa M.Shawky 2018-06-22 11:57:07

j'ai utilisé "hbase-1.3.0" et "hadoop-2.7.3" versions. Paramétrage de la variable d'environnement HADOOP_HOME et copie 'winutils.le fichier exe ' sous le répertoire HADOOP_HOME/bin résout le problème sur un système d'exploitation windows. Attention à placer l'environnement HADOOP_HOME dans le dossier d'installation de hadoop (le dossier/bin n'est pas nécessaire pour ces versions). En outre, j'ai préféré utiliser l'outil multiplate-forme cygwin pour régler la fonctionnalité du système d'exploitation linux (autant que possible) parce que L'équipe Hbase recommander linux / unix env.

0
répondu mahkras 2017-03-03 11:05:53

dans Pyspark, pour exécuter l'application locale spark en utilisant L'utilisation de Pycharm en dessous des lignes

os.environ['HADOOP_HOME'] = "C:\winutils"
print os.environ['HADOOP_HOME']
0
répondu Narsireddy 2018-09-27 16:33:18