web-dev-qa-db-ja.com

java.io.IOException:Hadoopバイナリで実行可能なnull \ bin \ winutils.exeが見つかりませんでした。 Windows 7でのEclipseの点火

Scala IDEにインストールされたWindows 7(Maven sparkプロジェクト)で簡単なsparkジョブを実行できません

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

ここ は、ソリューションに関する問題の適切な説明です。

  1. http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe からwinutils.exeをダウンロードします。
  2. OSレベルまたはプログラムでHADOOP_HOME環境変数を設定します。

    System.setProperty( "hadoop.home.dir"、 "winutilsを含むフォルダーへのフルパス");

  3. 楽しい

104
Taky
  1. ダウンロードwinutils.exe
  2. C:\winutils\binと言うフォルダーを作成します
  3. winutils.exeC:\winutils\bin内にコピーします
  4. 環境変数HADOOP_HOMEC:\winutilsに設定します
50
Deokant Gupta

これに従ってください:

  1. 任意のディレクトリにbinフォルダを作成します(手順3で使用します)。

  2. winutils.exe をダウンロードして、binディレクトリに配置します。

  3. コードにSystem.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");を追加します。

21
Ani Menon

以下の問題が表示された場合

エラーシェル:hadoopバイナリパスでwinutilsバイナリを見つけられませんでした

Java.io.IOException:Hadoopバイナリで実行可能なnull\bin\winutils.exeが見つかりませんでした。

その後、次の手順を実行します

  1. http://public-repo-1.hortonworks.com/hdp- win-alpha/winutils.exeからwinutils.exeをダウンロードします。
  2. これを作成したフォルダーのbinフォルダーの下に保持します。 C:\ Hadoop\bin
  3. そして、プログラムでSparkContextまたはSparkConfを作成する前に次の行を追加しますSystem.setProperty( "hadoop.home.dir"、 "C:\ Hadoop");
4
Prem S

Windows 10では、2つの異なる引数を追加する必要があります。

(1)新しい変数と値を-HADOOP_HOMEおよびパス(つまり、c:\ Hadoop)としてシステム変数に追加します。

(2)「パス」変数に「C:\ Hadoop\bin」として新しいエントリを追加/追加します。

上記は私のために働いた。

2
user1023627

システムプロパティでHadoop_Home環境変数を設定しても機能しませんでした。しかし、これは:

  • Eclipse Run Configurations環境タブでHadoop_Homeを設定します。
  • here から「Windows環境のセットアップ」に従ってください
1
Ramya

または、GITHubからwinutils.exeをダウンロードすることもできます。

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();

from: https://issues.cloudera.org/browse/DISTRO-544

1
Joabe Lucena

WindowsのHADOOP_HOMEの環境変数をC:\winutilsとして言及することに加えて、マシンの管理者であることを確認する必要もあります。そうでない場合、環境変数を追加すると管理者資格情報の入力が求められます(USER変数の下でも)。管理者としてコマンドプロンプトを起動すると、これらの変数が適用されます。

0

また、Java 1.8.0_121、Spark spark-1.6.1-bin-hadoop2.6、Windows 10、Eclipse Oxygenの詳細についても同様の問題に直面しました。HADOOP_HOMEをシステム変数として使用してEclipseでWordCount.Javaを実行したとき前の投稿で述べたように、それは機能しませんでした、私のために働いたのは-

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

PATH/TO/THE/DIR/bin = winutils.exe Eclipse内でJavaアプリケーションとして実行するか、cmdからspark-submitを使用して実行するかどうか

spark-submit --class groupid.artifactid.classname --master local [2]/mavenを使用して作成されたjarファイルへのパス/デモテストファイルへのパス/出力ディレクトリコマンドへのパス

例: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