Я не могу выполнить простую 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>
eclipse
scala
apache-spark
Эльфийский клинок
источник
источник
C:\winutils\bin
winutils.exe
внутрьC:\winutils\bin
HADOOP_HOME
значениеC:\winutils
источник
Следить за этим:
Создайте
bin
папку в любом каталоге (для использования на шаге 3).Загрузите winutils.exe и поместите его в каталог bin.
Теперь добавьте
System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");
свой код.источник
если мы увидим проблему ниже
затем выполните следующие шаги
источник
В Windows 10 вам следует добавить два разных аргумента.
(1) Добавьте новую переменную и значение как - HADOOP_HOME и путь (например, c: \ Hadoop) в Системные переменные.
(2) Добавить / добавить новую запись в переменную «Путь» как «C: \ Hadoop \ bin».
Вышеупомянутое сработало для меня.
источник
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")"
источник
У меня такая же проблема при запуске модульных тестов. Я нашел это обходное решение:
Следующий обходной путь позволяет избавиться от этого сообщения:
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
источник
Вы также можете скачать
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");
источник
Установка переменной окружения Hadoop_Home в свойствах системы у меня не сработала. Но это произошло:
источник
Помимо упоминания переменной среды для
HADOOP_HOME
в windows asC:\winutils
, вам также необходимо убедиться, что вы являетесь администратором компьютера. Если нет и добавление переменных среды запрашивает учетные данные администратора (даже вUSER
переменных), то эти переменные будут применимы после того, как вы запустите командную строку от имени администратора.источник
Я также столкнулся с аналогичной проблемой со следующими деталями: 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 / bin = winutils.exe независимо от того, запускаете ли вы в Eclipse как приложение Java или с помощью spark-submit из cmd, используя
spark-submit --class groupid.artifactid.classname --master local [2] / путь к файлу jar, созданному с помощью maven / путь к файлу демонстрационного теста / путь к команде выходного каталога
Пример: перейдите в папку Spark / home / location / bin и выполните искру-отправку, как указано,
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 \ целевой \ spark-quickstart-0.0.1-SNAPSHOT.jar D: \ BigData \ spark-quickstart \ wordcount.txt
источник
Сложный вопрос ... Ваше складское письмо должно быть емким. Например " C : \ ..."
источник