私はこれに非常に似た投稿があることを知っています( hadoopバイナリパスでwinutilsバイナリを見つけられませんでした )、しかし、提案されたすべてのステップを試してみましたが、同じエラーがまだ表示されます。
このページでチュートリアルを実行するには、Windows 7でApache Sparkバージョン1.6.0を使用しようとしています http://spark.Apache.org/docs/latest/ streaming-programming-guide.html 、特にこのコードを使用して:
./bin/run-example streaming.JavaNetworkWordCount localhost 9999
この投稿を読んだ後 hadoopバイナリパスでwinutilsバイナリを見つけられなかった
Winutils.exeファイルが必要だとわかったので、Hadoop_HOMEという環境変数を定義したhadoopバイナリ2.6.0をダウンロードしました。
with value C:\Users\GERAL\Desktop\hadoop-2.6.0\bin
次のようにパスに配置します:%HADOOP_HOME%
それでも、コードを試しても同じエラーが表示されます。誰もこれを解決する方法を知っていますか?
Hadoopを使用してWindowsでSparkを実行している場合、Windows hadoopインストールが適切にインストールされていることを確認する必要があります。 sparkを実行するには、hadoopホームディレクトリのbinフォルダーにwinutils.exeとwinutils.dllが必要です。
最初にこれを試してみてください:
1)以下のリンクのバンドルから.dllおよび.exeファイルをダウンロードできます。
https://codeload.github.com/sardetushar/hadooponwindows/Zip/master
2)winutils.exeとwinutils.dllをそのフォルダーから$ HADOOP_HOME/binにコピーします。
3)HADOOP_HOME
をspark-env.shまたはコマンドで設定し、HADOOP_HOME/bin
をPATH
に追加します。
その後、実行してみてください。
Hadoopのインストールに関するヘルプが必要な場合は、素敵なリンクがあります。試してみてください。
http://toodey.com/2015/08/10/hadoop-installation-on-windows-without-cygwin-in-10-mints/
しかし、それは待つことができます。最初の数ステップを試すことができます。
ここからbinファイルをダウンロードします Hadoop Bin then System.setProperty("hadoop.home.dir", "Desktop\bin");
hADOOP_HOME環境変数を次のように設定してみてください。
C:\Users\GERAL\Desktop\hadoop-2.6.0
の代わりに
C:\Users\GERAL\Desktop\hadoop-2.6.0\bin
JDK 1.8のインストール、Spark ApacheからのバイナリSpark&GitリポジトリからのWinutils
JDKのユーザー変数パスを設定、Spark binary、Winutils
Java_HOME
C:\ Program Files\Java\jdk1.8.0_73
HADOOP_HOME
C:\ Hadoop
SPARK_HOME
C:\ spark-2.3.1-bin-hadoop2.7
PATH
C:\ Program Files\Java\jdk1.8.0_73\bin;%HADOOP_HOME%\ bin;%SPARK_HOME%\ bin;
コマンドプロンプトを開き、spark-Shellを実行します
Windowsラップトップからspark-Shellを起動しようとしたときにも、この問題に直面しました。私はこれを解決し、それは私のために働いた、それが役立つことを願っています。これは私が犯した非常に小さな間違いです。winutils実行可能ファイルをwinutilsではなく「winutils.exe」として保存しました。
そのため、変数が解決されると、Hadoopバイナリのどこにもないwinutils.exe.exeに解決されます。その「.exe」を削除し、シェルをトリガーしました。保存されている名前を確認することをお勧めします。
次のエラーは、Spark application。WinutilsはHadoopエコシステムの一部であり、Sparkには含まれていません。アプリケーションの実際の機能は正しく実行される可能性があります。エラーを回避するには、winutils.exe
バイナリをダウンロードして、クラスパスに同じものを追加します。
import org.Apache.spark.SparkConf;
import org.Apache.spark.api.Java.JavaRDD;
import org.Apache.spark.api.Java.JavaSparkContext;
import org.Apache.spark.api.Java.function.Function;
public class SparkTestApp{
public static void main(String[] args) {
System.setProperty("hadoop.home.dir", "ANY_DIRECTORY");
// Example
// winutils.exe is copied to C:\winutil\bin\
// System.setProperty("hadoop.home.dir", "C:\\winutil\\");
String logFile = "C:\\sample_log.log";
SparkConf conf = new SparkConf().setAppName("Simple Application").setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD logData = sc.textFile(logFile).cache();
long numAs = logData.filter(new Function<String, Boolean>() {
public Boolean call(String s) {
return s.contains("a");
}
}).count();
System.out.println("Lines with a: " + numAs);
}
}
winutils.exe
がC:\winutil\bin\
にコピーされる場合
次に、以下のようにsetProperty
System.setProperty("hadoop.home.dir", "C:\\winutil\\");