Saya tidak dapat menjalankan spark
pekerjaan sederhana di Scala IDE
(proyek percikan Maven) yang diinstalWindows 7
Ketergantungan inti percikan telah ditambahkan.
val conf = new SparkConf().setAppName("DemoDF").setMaster("local")
val sc = new SparkContext(conf)
val logData = sc.textFile("File.txt")
logData.count()
Kesalahan:
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
Elvish_Blade
sumber
sumber
C:\winutils\bin
winutils.exe
di dalamC:\winutils\bin
HADOOP_HOME
keC:\winutils
sumber
Ikuti ini:
Buat
bin
folder di direktori mana pun (untuk digunakan di langkah 3).Unduh winutils.exe dan letakkan di direktori bin.
Sekarang tambahkan
System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");
kode Anda.sumber
jika kita melihat masalah di bawah ini
kemudian lakukan langkah-langkah berikut
sumber
Di Windows 10 - Anda harus menambahkan dua argumen berbeda.
(1) Tambahkan variabel dan nilai baru sebagai - HADOOP_HOME dan jalur (yaitu c: \ Hadoop) di bawah Variabel Sistem.
(2) Tambahkan / tambahkan entri baru ke variabel "Path" sebagai "C: \ Hadoop \ bin".
Di atas berhasil untuk saya.
sumber
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")"
sumber
Saya mendapat masalah yang sama saat menjalankan tes unit. Saya menemukan solusi solusi ini:
Solusi berikut memungkinkan untuk menghilangkan pesan ini:
File workaround = new File("."); System.getProperties().put("hadoop.home.dir", workaround.getAbsolutePath()); new File("./bin").mkdirs(); new File("./bin/winutils.exe").createNewFile();
dari: https://issues.cloudera.org/browse/DISTRO-544
sumber
Sebagai alternatif, Anda dapat mengunduh
winutils.exe
dari GITHub:https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin
ganti
hadoop-2.7.1
dengan versi yang Anda inginkan dan tempatkan file tersebutD:\hadoop\bin
System.setProperty("hadoop.home.dir", "D:\\hadoop");
sumber
Menyetel variabel lingkungan Hadoop_Home di properti sistem tidak berhasil untuk saya. Tapi ini berhasil:
sumber
Selain menyebutkan variabel lingkungan Anda untuk
HADOOP_HOME
di windows sebagaiC:\winutils
, Anda juga perlu memastikan bahwa Anda adalah administrator mesin. Jika tidak dan menambahkan variabel lingkungan meminta Anda untuk kredensial admin (bahkan di bawahUSER
variabel) maka variabel ini akan berlaku setelah Anda memulai prompt perintah sebagai administrator.sumber
Saya juga menghadapi masalah serupa dengan detail berikut Java 1.8.0_121, Spark spark-1.6.1-bin-hadoop2.6, Windows 10 dan Eclipse Oxygen. Saat saya menjalankan WordCount.java di Eclipse menggunakan HADOOP_HOME sebagai variabel sistem seperti yang disebutkan di posting sebelumnya, itu tidak berhasil, yang berhasil untuk saya adalah -
System.setProperty ("hadoop.home.dir", "PATH / TO / THE / DIR");
PATH / TO / THE / DIR / bin = winutils.exe apakah Anda menjalankan dalam Eclipse sebagai aplikasi Java atau dengan spark-submit dari cmd menggunakan
spark-submit --class groupid.artifactid.classname --master local [2] / path ke file jar yang dibuat menggunakan maven / path ke file uji demo / path ke perintah direktori keluaran
Contoh: Pergi ke lokasi bin Spark / home / location / bin dan jalankan spark-submit seperti yang disebutkan,
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
sumber
Itu rumit ... Surat penyimpanan Anda harus berbentuk huruf kapital. Misalnya " C : \ ..."
sumber