Quando ho creato HADOOP_HOME =/cygdrive/c/ecosistema/Hadoop-2.5.1 e quindi tentare di eseguire bin/Hadoop fs o bin/Hadoop Hadoop-streaming.jar da Cygwin, ricevo il seguente errore:errore Hadoop su Windows tramite Cygwin: Impossibile individuare nullo bin winutils.exe
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)
posso accedere bin/Hadoop versione insieme classpath e la maggior parte degli altri comandi. Ho pensato che forse avevo bisogno di un percorso di stile di Windows in modo che potesse essere conforme allo stile \ bin \ winutils. Così, ho impostato HADOOP_HOME = c: \ ecosystem \ hadoop-2.5.1 e questo errore è andato via. Tuttavia, ora ricevo un errore di collegamento durante l'esecuzione in Cygwin. Ho testato hadoop con HADOOP_HOME = c: \ ecosystem \ hadoop-2.5.1 tramite Comando di Windows, e posso eseguire un lavoro MapReduce senza problemi.
Voglio eseguire con successo hadoop in Cygwin e non voglio gestire errori di collegamento. Se tengo HADOOP_HOME =/cygdrive/c/ecosystem/hadoop-2.5.1, c'è un modo in cui posso impostare hadoop-config o qualche altro file per cercare il percorso di stile di Windows se il percorso Cygwin fallisce o è nullo ? Forse qualcosa di simile in Hadoop-config:
if ["$HADOOP_HOME" = ""]; then
HADOOP_HOME=$(cygpath -w "$HADOOP_HOME")
fi
Ovviamente questo particolare codice non ha funzionato in Hadoop-config, ma suppongo che si otterrà l'idea generale. Qualsiasi aiuto sarebbe apprezzato.
Qualsiasi motivo per cui stai utilizzando cygmin? Hadoop2 è utilizzabile su Windows (vedi https://wiki.apache.org/hadoop/Hadoop2OnWindows) – fxm
Hadoop, da solo, ha funzionato bene dal comando di Windows.Tuttavia, volevo testare un'integrazione con hive e alcuni framework di database. Dato che questi framework non sono fatti apposta per Windows, volevo sfruttare cygwin. Ho finito per costruire solo un box Linux, e poi costruire il mio ecosistema lì. Ha funzionato perfettamente – datasci