2016-02-26 4 views
36

nie jestem w stanie uruchomić prosty spark pracę w Scala IDE (projekt zapłonowej Maven) zainstalowanych na podstawowej zależności Windows 7java.io.IOException: Nie można znaleźć pliku wykonywalnego null bin winutils.exe w plikach binarnych Hadoop. iskra Eclipse na Windows 7

Spark został dodany.

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

Błąd:

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

możliwy duplikat z adresem: http://stackoverflow.com/questions/26162578/error-hadoop-on-windows-via-cygwin-could-not-locate-null-bin-winutils-exe?rq=1 – Taky

Odpowiedz

69

Here jest dobrym wyjaśnieniem problemu z roztworem.

  1. Pobierz plik winutils.exe z http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe.
  2. Skonfiguruj HADOOP_HOME zmienna środowiskowa na poziomie systemu operacyjnego lub programowo:

    System.setProperty ("hadoop.home.dir", "pełna ścieżka do folderu bin z winutils");

  3. Ciesz

+7

Muszę ustawić HADOOP_HOME w folderze hadoop zamiast folderu bin. – Stanley

+1

Należy również pobrać poprawny plik winutils.exe na podstawie wersji hadoop, dla której skompilowano iskrę (niekoniecznie powyższy link). W przeciwnym razie czeka na ciebie ból :) –

+0

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

24
  1. Pobierz winutils.exe
  2. Utwórz folder, powiedzmy C:\winutils\bin
  3. Kopiowanie winutils.exe wewnątrz C:\winutils\bin
  4. Ustaw zmienną środowiskową HADOOP_HOME do C:\winutils
+0

dziękuję za bycie prostym !! –

10

Postępuj następująco:

  1. Tworzenie bin folder w dowolnym katalogu (do wykorzystania w punkcie 3).

  2. Pobierz winutils.exe i umieść go w katalogu bin.

  3. Teraz dodaj System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR"); do swojego kodu.

+2

Wielkie dzięki, właśnie to, czego szukałem. – user373201

+0

To zadziałało dla mnie. Dzięki.. – ashu17188

0

Na szczycie wspomnieć zmienną środowiskową dla HADOOP_HOME w oknach jak C:\winutils, należy również upewnić się, że jesteś administratorem komputera. Jeśli nie, a dodanie zmiennych środowiskowych monituje o poświadczenia administratora (nawet w przypadku zmiennych USER), zmienne te będą obowiązywać po uruchomieniu wiersza polecenia jako administrator.

0

Ustawienie zmiennej środowiskowej Hadoop_Home we właściwościach systemu nie działa dla mnie. Ale tak się stało:

  • Ustaw Hadoop_Home w zakładce środowiska konfiguracji Eclipse Run.
  • Wykonaj instalację systemu Windows 'Środowisko' z here
2

jeśli widzimy poniżej kwestii

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.

następnie wykonaj następujące kroki

  1. pobieranie winutils.exe z http://public-repo-1.hortonworks.com/hdp- win-alfa /winutils.exe.
  2. i pozostaw to w folderze bin dowolnego folderu utworzonego dla.e.g. C: \ Hadoop \ bin
  3. oraz w programie dodaj następującą linię przed utworzeniem SparkContext lub SparkConf System.setProperty ("hadoop.home.dir", "C: \ Hadoop");
Powiązane problemy