2016-02-26 18 views
36

io non sono in grado di eseguire una semplice spark lavoro in Scala IDE (progetto scintilla Maven) installati su Windows 7java.io.IOException: impossibile trovare l'eseguibile null bin winutils.exe nei binari di Hadoop. scintilla Eclipse su Windows 7

Spark nucleo dipendenza è stato aggiunto.

val conf = new SparkConf().setAppName("DemoDF").setMaster("local") 
val sc = new SparkContext(conf) 
val logData = sc.textFile("File.txt") 
logData.count() 

Errore:

16/02/26 18:29:33 INFO SparkContext: Created broadcast 0 from textFile at FrameDemo.scala:13 
16/02/26 18:29:34 ERROR Shell: 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.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:362) 
    at <br>org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015) 
    at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015) 
    at <br>org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176) 
    at <br>org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176)<br> 
    at scala.Option.map(Option.scala:145)<br> 
    at org.apache.spark.rdd.HadoopRDD.getJobConf(HadoopRDD.scala:176)<br> 
    at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:195)<br> 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)<br> 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)<br> 
    at scala.Option.getOrElse(Option.scala:120)<br> 
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)<br> 
    at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)<br> 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)<br> 
    at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)<br> 
    at scala.Option.getOrElse(Option.scala:120)<br> 
    at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)<br> 
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:1929)<br> 
    at org.apache.spark.rdd.RDD.count(RDD.scala:1143)<br> 
    at com.org.SparkDF.FrameDemo$.main(FrameDemo.scala:14)<br> 
    at com.org.SparkDF.FrameDemo.main(FrameDemo.scala)<br> 
+0

possibile duplicato con: http://stackoverflow.com/questions/26162578/error-hadoop-on-windows-via-cygwin-could-not-locate-null-bin-winutils-exe?rq=1 – Taky

risposta

69

Here è una buona spiegazione del problema con la soluzione.

  1. Scarica winutils.exe da http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe.
  2. preparare il proprio ambiente variabile HADOOP_HOME sul livello di sistema operativo oa livello di programmazione:

    System.setProperty ("hadoop.home.dir", "percorso completo della cartella bin con winutils");

  3. Godetevi

+7

Devo impostare HADOOP_HOME sulla cartella hadoop anziché sulla cartella bin. – Stanley

+1

Inoltre, assicurati di scaricare il winutils.exe corretto in base alla versione di hadoop per cui è stata compilata la scintilla (quindi, non necessariamente il link sopra). Altrimenti, il dolore attende :) –

+0

System.setProperty ("hadoop.home.dir", "C: \\ hadoop-2.7.1 \\") –

24
  1. Scarica winutils.exe
  2. Crea cartella, dicono C:\winutils\bin
  3. Copia winutils.exe all'interno C:\winutils\bin
  4. Set variabile d'ambiente HADOOP_HOME-C:\winutils
.210
+0

grazie per essere semplicemente avanti !! –

10

Seguire questo:

  1. Creare una cartella bin in qualsiasi directory (da utilizzare al punto 3).

  2. Scaricare winutils.exe e posizionarlo nella directory bin.

  3. Ora aggiungi System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR"); nel codice.

+2

Grazie mille, proprio quello che stavo cercando – user373201

+0

Ha funzionato per me. Grazie.. – ashu17188

0

In cima a menzionare la variabile d'ambiente per HADOOP_HOME in finestre come C:\winutils, è inoltre necessario assicurarsi che si è l'amministratore della macchina. In caso contrario e l'aggiunta di variabili di ambiente richiede all'utente le credenziali di amministratore (anche con le variabili USER), tali variabili saranno applicabili una volta avviato il prompt dei comandi come amministratore.

0

L'impostazione della variabile di ambiente Hadoop_Home nelle proprietà di sistema non ha funzionato per me. Ma questo ha fatto:

  • Impostare Hadoop_Home nella scheda ambiente Configurazioni di esecuzione Eclipse.
  • Seguire l' 'installazione di Windows Environment' dal here
2

se vediamo qui di seguito problema

ERROR Shell: 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.

poi non seguente procedura

  1. scaricare winutils.exe da http://public-repo-1.hortonworks.com/hdp- win-alfa /winutils.exe.
  2. e tieni questa sotto la cartella bin di qualsiasi cartella creata per.e.g. C: \ Hadoop \ bin
  3. e nel programma aggiungere la seguente riga prima di creare SparkContext o SparkConf System.setProperty ("hadoop.home.dir", "C: \ Hadoop");