Erreur Hadoop sur Windows via Cygwin: ne Peut Pas trouver null\bin\winutils.exe
Lorsque j'ai mis HADOOP_HOME=/cygdrive/c/écosystème/hadoop-2.5.1 et puis essayez d'exécuter bin/hadoop fs ou bin/hadoop hadoop-streaming.jar à partir de Cygwin, je reçois l'erreur suivante:
ERROR [main] util.Shell (Shell.java:getWinUtilsPath(373)) - 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:355)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:370)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:363)
at org.apache.hadoop.util.GenericOptionsParser.preProcessForWindows(GenericOptionsParser.java:432)
at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:478)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:170)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:153)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:64)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
Exception in thread "main" java.lang.RuntimeException: core-site.xml not found
at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2269)
at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2195)
at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2112)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:989)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:961)
at org.apache.hadoop.conf.Configuration.setBoolean(Configuration.java:1299)
at org.apache.hadoop.util.GenericOptionsParser.processGeneralOptions(GenericOptionsParser.java:319)
at org.apache.hadoop.util.GenericOptionsParser.parseGeneralOptions(GenericOptionsParser.java:479)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:170)
at org.apache.hadoop.util.GenericOptionsParser.<init>(GenericOptionsParser.java:153)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:64)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
Je peux accéder à bin/hadoop version avec classpath et la plupart des autres commandes. J'ai pensé que peut-être j'ai besoin d'un Windows chemin d'accès de style de sorte qu'il pourrait être conformes à la \bin\winutils style. Donc, j'ai mis HADOOP_HOME=c:\de l'écosystème\hadoop-2.5.1 et cette erreur a disparu. Cependant, maintenant, je reçois un lien d'erreur lors de l'exécution dans Cygwin. J'ai testé hadoop avec HADOOP_HOME=c:\de l'écosystème\hadoop-2.5.1 via de Commande de Windows, et je peux exécuter un travail de MapReduce sans problème.
Je veux exécuter avec succès hadoop dans Cygwin, et je ne veux pas avoir affaire avec des erreurs de lien. Si je continue à HADOOP_HOME=/cygdrive/c/écosystème/hadoop-2.5.1, est-il possible que je peux configurer hadoop-config ou un autre fichier à look pour le style Windows chemin d'accès si le Cygwin chemin d'accès échoue ou est null? Peut-être que quelque chose comme cela dans hadoop-config:
if ["$HADOOP_HOME" = ""]; then
HADOOP_HOME=$(cygpath -w "$HADOOP_HOME")
fi
Évidemment, ce code ne fonctionne pas dans hadoop-config, mais je suppose que vous aurez compris l'idée générale. Toute aide serait appréciée.
Hadoop, seul, a bien fonctionné de commande de windows. Cependant, j'ai voulu tester une intégration avec la ruche, ainsi que d'une base de données de quelques cadres. Depuis ces cadres ne sont pas vraiment faites pour Windows, j'ai voulu tirer parti de cygwin. J'ai fini par construire une linux box, puis la construction de mon écosystème. A parfaitement fonctionné.
OriginalL'auteur datasci | 2014-10-02
Vous devez vous connecter pour publier un commentaire.
J'ai résolu une erreur similaire avec Eclipse quand j'ai essayé d'exécuter Hadoop MONSIEUR le programme localement dans Windows en définissant la variable d'environnement HADOOP_HOME par Eclipse: Exécuter->Exécuter les Configurations->Environnement.
OriginalL'auteur SManyam K
Depuis que j'ai été en mesure de fonctionner avec succès avec Hadoop via la commande de Windows, il n'a pas beaucoup de sens de perdre du temps à essayer de comprendre comment le faire fonctionner avec cygwin. Au lieu de cela, pour mon plus grand écosystème Hadoop, j'ai tout simplement construit sur linux. Il est super facile à utiliser, et est de loin la meilleure décision que j'ai fait.
OriginalL'auteur datasci
Essayez de modifier hadoop/hdfs/fils de scripts shell, ajoutez -Dhadoop.la maison.dir= droit à l'endroit où JAVA commande est invoquée.
Vous pourriez avoir à ajouter dans ces scripts shell
if ["$HADOOP_HOME" = ""]; then
HADOOP_HOME=$(cygpath -w "$HADOOP_HOME")
fi
Pire des cas, vous avez déjà src accès modifier le compiler et l'ensemble de la maison de la variable y de la compilation et de l'ajouter à pot.
Est bien a fonctionné pour moi sur windows 7, mais pas sur xp
OriginalL'auteur RockSolid
réf. https://issues.apache.org/jira/browse/HADOOP-10133
Sur cette base, j'ai ajouté la ligne suivante à mon
.zshrc
(ou.bashrc
pour vous):Si vous n'avez pas $HADOOP_HOME, vous devriez.
OriginalL'auteur David S.