WindowsでSparkを設定する方法は?


93

WindowsでApache Sparkをセットアップしようとしています。

少し検索したところ、スタンドアロンモードが必要なことがわかりました。WindowsでApache sparkを実行するために、どのバイナリをダウンロードしますか?Sparkのダウンロードページに、hadoopとcdhを含むディストリビューションがあります。

私はこれについてウェブに言及していません。これへの段階的なガイドは高く評価されます。

回答:


34

Windowsでの最も簡単な解決策は、ソースからビルドすることです。

このガイドはほぼフォローできます。http//spark.apache.org/docs/latest/building-spark.html

MavenをダウンロードしてインストールMAVEN_OPTSし、ガイドで指定されている値に設定します。

しかし、Sparkをいじっているだけで、自分のマシンがWindowsを実行しているという他の理由で実際にWindowsで実行する必要がない場合は、Linux仮想マシンにSparkをインストールすることを強くお勧めします。開始する最も簡単な方法は、ClouderaまたはHortonworksで作成された既製のイメージをダウンロードし、バンドル版のSparkを使用するか、ソースから独自のイメージをインストールするか、sparkのWebサイトから取得できるコンパイル済みのバイナリをインストールすることです。


1
頭を上げてくれてありがとう。リンクを修正しました。
jkgeyti 2015年

1
こんにちは、Windowsでの私のビルドはCygwinで正常に動作しますが、sbinディレクトリでコマンド./start-master.shを実行すると、エラーエラーが表示されます。メインクラスorg.apache.spark.launcher.Mainが見つからないか、読み込めませんログイン/cygdrive/c/Spark/spark-1.5.1/sbin/../logs/spark-auser-org.apache.spark.deploy.master.Master-1.host
Geek

こんにちはYashpalです。試してみましたが、ステップ5(winutils)で行き詰まりました。これらのファイルをbinディレクトリにコピーできません。
Venkat Ramakrishnan

140

ローカルモードでSparkをインストールする手順:

  1. Java 7以降をインストールします。Javaのインストールが完了したことをテストするには、コマンドプロンプトを開いてjavaEnter キーを押します。あなたがメッセージを受信した場合は'Java' is not recognized as an internal or external command. ご使用の環境変数を設定するために、必要JAVA_HOMEPATHJDKのパスを指すように。

  2. Scalaをダウンロードしてインストールします。

    設定するSCALA_HOMEControl Panel\System and Security\Systemはgoto「前売システム設定」と追加%SCALA_HOME%\binの環境変数にPATH変数に。

  3. PythonダウンロードリンクからPython 2.6以降をインストールします。

  4. SBTをダウンロードします。それをインストールし、SBT_HOME値がの環境変数として設定します<<SBT PATH>>

  5. HortonWorks repoまたはgit repowinutils.exeからダウンロードします。WindowsにはローカルのHadoopインストールがないため、ダウンロードして、作成したホームディレクトリの下のディレクトリに配置する必要があります。環境変数に設定します。winutils.exebinHadoopHADOOP_HOME = <<Hadoop home directory>>

  6. ビルド済みのSparkパッケージを使用するため、Hadoop Sparkダウンロード用のSparkビルド済みパッケージを選択します。ダウンロードして解凍します。

    環境変数にPATH変数を設定SPARK_HOMEして追加%SPARK_HOME%\binします。

  7. コマンドを実行: spark-shell

  8. http://localhost:4040/ブラウザーで開いて、SparkContext Web UIを表示します。


5
ローカルコンパイルを必要としないすばらしいガイド。
マット

2
「java.lang.IllegalArgumentException: 'org.apache.spark.sql.hive.HiveSessionState'のインスタンス化中にエラーが発生しました」と表示されます。ハイブをインストールするために追加の手順が必要ですか?
ステファン


4
ありがとうございます。また、spark-shellの実行中に「spark jarディレクトリが見つかりませんでした」というエラーが発生した場合は、SPARK_HOMEパスにスペースがないことを確認してください。これに長い間苦労しました。
Aakash Jain 2017

1
これはここの金です。WindowsのSparkとScalaでどれほどの問題があったか説明できません。私は最初にWindows Ubuntu Bashを試しました。良い考えではありません!たぶん、最新のクリエーターのアップデート(Ubuntu 16)を持っているかもしれませんが、それ以外の場合は、大量のエラーとネットワークの問題があります。
トム

21

ここからスパークをダウンロードできます:

http://spark.apache.org/downloads.html

このバージョンをお勧めします: Hadoop 2(HDP2、CDH5)

バージョン1.0.0以降、WindowsでSparkを実行するための.cmdスクリプトがあります。

7zipなどを使用して解凍します。

開始するには、実行できます / bin / spark-shell.cmd --master local [2]を

インスタンスを設定するには、次のリンクにアクセスできます:http : //spark.apache.org/docs/latest/


どのHadoopの代替案を提案しますか?Windows PCにもインストールできるものです。Redis?
skan

17

以下の方法でSparkをセットアップできます。

  • ソースからビルド
  • ビルド済みリリースの使用

SourceからSparkビルドするにはさまざまな方法があります。
最初にSBTでSparkソースを構築してみましたが、それにはhadoopが必要です。これらの問題を回避するために、ビルド済みのリリースを使用しました。

ソースの代わりに、hadoop 2.xバージョン用のビルド済みリリースをダウンロードして実行しました。このためには、前提条件としてScalaをインストールする必要があります。

私はここですべての手順を照合しました:
Windows7でスタンドアロンモードでApache Sparkを実行する方法

お役に立てれば幸いです。


8

spark-2.xxで作業しようとしても、Sparkソースコードのビルドは機能しませんでした。

  1. そのため、私はHadoopを使用しませんが、hadoopが埋め込まれたビルド済みのSparkをダウンロードしました。 spark-2.0.0-bin-hadoop2.7.tar.gz

  2. 解凍したディレクトリでSPARK_HOMEをポイントし、次に追加しPATHます。;%SPARK_HOME%\bin;

  3. HortonworksリポジトリまたはAmazon AWSプラットフォームwinutilsから実行可能なwinutilsをダウンロードします。

  4. 実行可能ファイルwinutils.exeを配置するディレクトリを作成します。たとえば、C:\ SparkDev \ x64です。%HADOOP_HOME%このディレクトリを指す環境変数を追加して%HADOOP_HOME%\binから、PATHに追加します。

  5. コマンドラインを使用して、ディレクトリを作成します。

    mkdir C:\tmp\hive
    
  6. ダウンロードした実行可能ファイルを使用して、作成したファイルディレクトリに完全な権限を追加しますが、unixian形式を使用します。

    %HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive
    
  7. 次のコマンドラインを入力します。

    %SPARK_HOME%\bin\spark-shell
    

Scalaコマンドライン入力は自動的に表示されます。

備考: Scalaを個別に構成する必要はありません。それも内蔵されています。


3

MS-VSの最新バージョンがない場合など、すべてを再構築せずにWindowsで実行できるようにするための修正を次に示します。(Win32 C ++コンパイラが必要ですが、MS VS Community Editionを無料でインストールできます。)

私は、Spark 1.2.2とmahout 0.10.2、および2015年11月の最新バージョンでこれを試しました。Scalaコードがbashスクリプト(mahout / bin / mahout)はもちろん機能しません。sbinスクリプトはWindowsに移植されておらず、hadoopがインストールされていない場合、winutilsがありません。

(1) scalaをインストールしてから、spark / hadoop / mahoutをそれぞれの製品名でC:のルートに解凍します。

(2) \ mahout \ bin \ mahoutの名前をmahout.sh.wasに変更します(必要ありません)。

(3)次のWin32 C ++プログラムをコンパイルし、実行可能ファイルをC:\ mahout \ bin \ mahoutという名前のファイルにコピーします(そうです。Linux実行可能ファイルのように.exeサフィックスはありません)。

#include "stdafx.h"
#define BUFSIZE 4096
#define VARNAME TEXT("MAHOUT_CP")
int _tmain(int argc, _TCHAR* argv[]) {
    DWORD dwLength;     LPTSTR pszBuffer;
    pszBuffer = (LPTSTR)malloc(BUFSIZE*sizeof(TCHAR));
    dwLength = GetEnvironmentVariable(VARNAME, pszBuffer, BUFSIZE);
    if (dwLength > 0) { _tprintf(TEXT("%s\n"), pszBuffer); return 0; }
    return 1;
}

(4)スクリプト\ mahout \ bin \ mahout.batを作成し、以下のコンテンツに貼り付けます。ただし、_CPクラスパス内のjarの正確な名前は、sparkとmahoutのバージョンによって異なります。インストールごとにパスを更新します。スペースを含まない8.3パス名を使用してください。ここではクラスパスでワイルドカード/アスタリスクを使用できないことに注意してください。

set SCALA_HOME=C:\Progra~2\scala
set SPARK_HOME=C:\spark
set HADOOP_HOME=C:\hadoop
set MAHOUT_HOME=C:\mahout
set SPARK_SCALA_VERSION=2.10
set MASTER=local[2]
set MAHOUT_LOCAL=true
set path=%SCALA_HOME%\bin;%SPARK_HOME%\bin;%PATH%
cd /D %SPARK_HOME%
set SPARK_CP=%SPARK_HOME%\conf\;%SPARK_HOME%\lib\xxx.jar;...other jars...
set MAHOUT_CP=%MAHOUT_HOME%\lib\xxx.jar;...other jars...;%MAHOUT_HOME%\xxx.jar;...other jars...;%SPARK_CP%;%MAHOUT_HOME%\lib\spark\xxx.jar;%MAHOUT_HOME%\lib\hadoop\xxx.jar;%MAHOUT_HOME%\src\conf;%JAVA_HOME%\lib\tools.jar
start "master0" "%JAVA_HOME%\bin\java" -cp "%SPARK_CP%" -Xms1g -Xmx1g org.apache.spark.deploy.master.Master --ip localhost --port 7077 --webui-port 8082 >>out-master0.log 2>>out-master0.err
start "worker1" "%JAVA_HOME%\bin\java" -cp "%SPARK_CP%" -Xms1g -Xmx1g org.apache.spark.deploy.worker.Worker spark://localhost:7077 --webui-port 8083 >>out-worker1.log 2>>out-worker1.err
...you may add more workers here...
cd /D %MAHOUT_HOME%
"%JAVA_HOME%\bin\java" -Xmx4g -classpath "%MAHOUT_CP%" "org.apache.mahout.sparkbindings.shell.Main"

変数MAHOUT_CPの名前は、C ++コードで参照されるため、変更しないでください。

もちろん、Mahoutが必要に応じてSparkを実行するため、Sparkマスターとワーカーを起動するコードをコメント化できます。MahoutなしでSparkを使用する場合の起動方法を示すために、バッチジョブに入れました。

(5)次のチュートリアルは、開始するのに適した場所です。

https://mahout.apache.org/users/sparkbindings/play-with-shell.html

Mahout Sparkインスタンスは次の場所で起動できます。

"C:\Program Files (x86)\Google\Chrome\Application\chrome" --disable-web-security http://localhost:4040


1

ここでは、Windows 10にSparkをインストールして、Pythonから実行するための7つの手順を示します。

ステップ1:このリンクから任意のフォルダFに火花2.2.0タールをダウンロード(テープアーカイブ)GZファイル- https://spark.apache.org/downloads.html。それを解凍し、解凍したフォルダーを目的のフォルダーAにコピーします。spark-2.2.0-bin-hadoop2.7フォルダーの名前をsparkに変更します。

sparkフォルダーへのパスをC:\ Users \ Desktop \ A \ sparkにします

ステップ2:このリンクから、同じフォルダFにhardoop 2.7.3のtar、gzでファイルをダウンロードする- https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7 .3.tar.gz。解凍して、解凍したフォルダーを同じフォルダーAにコピーします。フォルダー名をHadoop-2.7.3.tarからhadoopに変更します。hadoopフォルダーへのパスをC:\ Users \ Desktop \ A \ hadoopにします

手順3:新しいメモ帳のテキストファイルを作成します。この空のメモ帳ファイルをwinutils.exeとして保存します(ファイルの種類:すべてのファイル)。このO KB winutils.exeファイルをSparkのbinフォルダーにコピーします-C:\ Users \ Desktop \ A \ spark \ bin

ステップ4:次に、これらのフォルダーをシステム環境に追加する必要があります。

4a:システム変数を作成します(ユーザー変数はシステム変数のすべてのプロパティを継承するため、ユーザー変数ではありません)変数名:SPARK_HOME変数値:C:\ Users \ Desktop \ A \ spark

Pathシステム変数を見つけて、[編集]をクリックします。複数のパスが表示されます。パスは削除しないでください。この変数値を追加-; C:\ Users \ Desktop \ A \ spark \ bin

4b:システム変数を作成する

変数名:HADOOP_HOME変数値:C:\ Users \ Desktop \ A \ hadoop

Pathシステム変数を見つけて、[編集]をクリックします。この変数の値を追加-; C:\ Users \ Desktop \ A \ hadoop \ bin

4c:システム変数を作成します。変数名:JAVA_HOME WindowsでJavaを検索します。右クリックして、開いているファイルの場所をクリックします。Javaファイルのいずれかをもう一度右クリックして、開いているファイルの場所をクリックする必要があります。このフォルダのパスを使用します。または、C:\ Program Files \ Javaを検索できます。システムにインストールされているJavaのバージョンはjre1.8.0_131です。変数値:C:\ Program Files \ Java \ jre1.8.0_131 \ bin

Pathシステム変数を見つけて、[編集]をクリックします。この変数値を追加-; C:\ Program Files \ Java \ jre1.8.0_131 \ bin

手順5:コマンドプロンプトを開き、スパークビンフォルダーに移動します(cd C:\ Users \ Desktop \ A \ spark \ binと入力します)。「spark-shell」と入力します。

C:\Users\Desktop\A\spark\bin>spark-shell

時間がかかり、警告が表示される場合があります。最後に、スパークバージョン2.2.0へようこそ

手順6:exit()と入力するか、コマンドプロンプトを再起動して、spark binフォルダーに再度移動します。タイプpyspark:

C:\Users\Desktop\A\spark\bin>pyspark

いくつかの警告とエラーが表示されますが、無視してください。できます。

ステップ7:ダウンロードが完了しました。Pythonシェルから直接Sparkを実行する場合は、Pythonフォルダーのスクリプトに移動して、次のように入力します。

pip install findspark

コマンドプロンプトで。

Pythonシェル

import findspark
findspark.init()

必要なモジュールをインポートする

from pyspark import SparkContext
from pyspark import SparkConf

findsparkをインポートして初期化する手順をスキップする場合は、Pythonシェルでのpysparkのインポートに記載されている手順に従ってください。


0

以下は、任意のpythonコンソールから実行するためのシンプルな最小スクリプトです。ダウンロードしたSparkライブラリをC:\ Apache \ spark-1.6.1に抽出したことを前提としています。

これはWindowsで何も構築せずに機能し、Sparkが再帰的なピクルス処理について不平を言う問題を解決します。

import sys
import os
spark_home = 'C:\Apache\spark-1.6.1'

sys.path.insert(0, os.path.join(spark_home, 'python'))
sys.path.insert(0, os.path.join(spark_home, 'python\lib\pyspark.zip')) 
sys.path.insert(0, os.path.join(spark_home, 'python\lib\py4j-0.9-src.zip')) 

# Start a spark context:
sc = pyspark.SparkContext()

# 
lines = sc.textFile(os.path.join(spark_home, "README.md")
pythonLines = lines.filter(lambda line: "Python" in line)
pythonLines.first()

0

ClouderaとHortonworksは、Microsoft WindowsでHDFSを起動するのに最適なツールです。VMWareまたはVBoxを使用して仮想マシンを開始し、HDFSおよびSpark、Hive、HBase、Pig、Scala、R、Java、Pythonを備えたHadoopへのビルドを確立することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.