it-roy-ru.com

java.io.IOException: Не удалось найти исполняемый файл null\bin\winutils.exe в двоичных файлах Hadoop. искровое затмение на windows 7

Я не могу запустить простое задание spark в Scala IDE (проект Maven spark), установленном на Windows 7

Добавлена ​​зависимость ядра Spark.

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

Ошибка: 

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>
59
Elvish_Blade

Здесь является хорошим объяснением вашей проблемы с решением. 

  1. Загрузите файл winutils.exe с http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe .
  2. Установите переменную среды HADOOP_HOME на уровне операционной системы или программно:

    System.setProperty ("hadoop.home.dir", "полный путь к папке bin с winutils");

  3. Наслаждаться

98
Taky
  1. Скачать winutils.exe
  2. Создать папку, скажем C:\winutils\bin
  3. Скопируйте winutils.exe внутри C:\winutils\bin
  4. Задайте для переменной среды HADOOP_HOME значение C:\winutils
44
Deokant Gupta

Следить за этим:

  1. Создайте папку bin в любом каталоге (будет использоваться на шаге 3).

  2. Загрузите winutils.exe и поместите его в каталог bin.

  3. Теперь добавьте System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR"); в ваш код.

18
Ani Menon

если мы увидим ниже вопрос

ОШИБКА Shell: не удалось найти двоичный файл winutils в двоичном пути hadoop

Java.io.IOException: Не удалось найти исполняемый файл null\bin\winutils.exe в двоичных файлах Hadoop.

затем выполните следующие шаги

  1. загрузите файл winutils.exe с http://public-repo-1.hortonworks.com/hdp- win-alpha/winutils.exe.
  2. и держите это в папке bin любой папки, которую вы создали для.e.g. C:\Hadoop\Bin
  3. и в программе добавьте следующую строку перед созданием SparkContext или SparkConf System.setProperty ("hadoop.home.dir", "C:\Hadoop");
4
Prem S

Установка переменной среды Hadoop_Home в системных свойствах не работала для меня. Но это сделал:

  • Задайте Hadoop_Home на вкладке среды Eclipse Run Configurations. 
  • Следуйте «Настройка среды Windows» из здесь
1
Ramya

Вы также можете скачать winutils.exe с GITHub:

https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin

замените hadoop-2.7.1 версией, которую вы хотите, и поместите файл в D:\hadoop\bin

Если у вас нет прав доступа к настройкам переменных среды на вашем компьютере просто добавьте следующую строку в ваш код:

System.setProperty("hadoop.home.dir", "D:\\hadoop");
1
Saurabh
1) Download winutils.exe from https://github.com/steveloughran/winutils 
2) Create a directory In windows "C:\winutils\bin
3) Copy the winutils.exe inside the above bib folder .
4) Set the environmental property in the code 
  System.setProperty("hadoop.home.dir", "file:///C:/winutils/");
5) Create a folder "file:///C:/temp" and give 777 permissions.
6) Add config property in spark Session ".config("spark.sql.warehouse.dir", "file:///C:/temp")"
1
Sampat Kumar

У меня такая же проблема при запуске модульных тестов. Я нашел это обходное решение:

Следующий обходной путь позволяет избавиться от этого сообщения:

    File workaround = new File(".");
    System.getProperties().put("hadoop.home.dir", workaround.getAbsolutePath());
    new File("./bin").mkdirs();
    new File("./bin/winutils.exe").createNewFile();

от: https://issues.cloudera.org/browse/DISTRO-544

1
Joabe Lucena

На Windows 10 - вы должны добавить два разных аргумента. 

(1) Добавьте новую переменную и значение как - HADOOP_HOME и путь (т.е. c:\Hadoop) в разделе Системные переменные.

(2) Добавить/добавить новую запись в переменную «Путь» как «C:\Hadoop\bin». 

Вышесказанное сработало для меня. 

0
user1023627

Помимо упоминания вашей переменной среды для HADOOP_HOME в Windows как C:\winutils, вы также должны убедиться, что вы являетесь администратором машины. Если нет, и добавление переменных среды запрашивает учетные данные администратора (даже в переменных USER), то эти переменные будут применимы после запуска командной строки от имени администратора.

0
Abhishek Sakhuja

Я также столкнулся с подобной проблемой со следующими деталями Java 1.8.0_121, Spark spark-1.6.1-bin-hadoop2.6, Windows 10 и Eclipse Oxygen. Когда я запустил свой WordCount.Java в Eclipse, используя HADOOP_HOME в качестве системная переменная, как упомянуто в предыдущем посте, она не работала, у меня это работало -

System.setProperty ("hadoop.home.dir", "PATH/TO/THE/DIR"); 

PATH/TO/THE/DIR/bin = winutils.exe, запускаете ли вы в Eclipse как приложение Java или с помощью spark-submit из cmd, используя 

spark-submit --class groupid.artifactid.classname --master local [2]/путь к файлу jar, созданному с помощью maven /pathto, для демонстрационного тестового файла/путь к команде выходного каталога

Пример: перейдите в папку bin Spark/home/location/bin и выполните spark-submit, как указано выше,

D:\BigData\spark-2.3.0-bin-hadoop2.7\bin> spark-submit --class com.bigdata.abdus.sparkdemo.WordCount --master local [1] D:\BigData\spark-quickstart\target\spark-quickstart-0.0.1-SNAPSHOT.jar D:\BigData\spark-quickstart\wordcount.txt

0
Abdus Mondal

Это сложно ... Ваше письмо должно быть забавным. Например, "C:\..."

0
Achilles