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.

Des raisons pour lesquelles vous utilisez cygmin ? Hadoop2 est utilisable sur windows (voir la section wiki.apache.org/hadoop/Hadoop2OnWindows )
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