はじめに
ローカル(Windows10)上でApache Spark(PySpark)を試してみたかったので、環境構築手順を備忘録として記載します。
Apach Sparkとは
Apache Spark(以降Spark)は簡単に言うとオンメモリで高速分散処理を可能とするオープンソースのフレームワークです。
分散処理ではHadoopもありますが、HadoopはHDFSにアクセスして処理するのに対してSparkはメモリ上で処理が可能です。
また、Spark自体はScalaで実装されていますがPython、Java、R、Scalaに対応しています。
Sparkは、Spark Coreを中心とした複数のコンポーネントから構成されています。
- Spark Core:Sparkのエンジンで基本機能を提供。
- Spark SQL:構造化データに対して、SQLを使用してアクセス。
- Spark Streaming:Spark上でストリーミングデータの処理機能を提供。
- MLlib:機械学習の機能を提供。
- GraphX:グラフデータの処理機能を提供。
環境構築
- OS:Windows 10 Home
JRE
Sparkの動作にはJREが必要。
JREがインストールされているか確認する。
C:\>java -version java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode, sharing)
既にインストール済みでした。
もし、入っていなければJREのインストールを行う。
Python
PySparkを試すためPythonも必要。
Pythonがインストールされているか確認する。
C:\>python --version Python 3.7.3
こちらもインストール済みでした。
Spark
Sparkの公式ページからダウンロードする。
https://spark.apache.org/downloads.html
Windowsで動かすにはwinutilsが必要なので、以下よりダウンロードする。
https://github.com/steveloughran/winutils
ダウンロードした「spark-2.4.5-bin-hadoop2.7.tgz」を解凍し、適当なディレクトリに配置する。
winutilsは、展開後のbin配下に格納する。
C:\spark-2.4.5-bin-hadoop2.7
環境設定
環境変数を設定する。
* HADOOP_HOME:C:\spark-2.4.5-bin-hadoop2.7
* PATH:$HADOOP_HOME\binを追加
起動確認
spark-shellコマンドを実行し起動確認する。
C:\>spark-shell [中略] Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.4.5 /_/ Using Scala version 2.11.12 (Java HotSpot(TM) Client VM, Java 1.8.0_251) Type in expressions to have them evaluated. Type :help for more information. scala>
jupyter notebookでPySparkを起動させるには以下の環境変数を追加する。
* PYSPARK_DRIVER_PYTHON:jupyter
* PYSPARK_DRIVER_PYTHON_OPTS:'notebook'
pysparkコマンドを実行するとjupyter notebookが起動される。
C:\work>pyspark
簡単なプログラムでSparkが使用できることを確認する。
SparkSQLにて「HelloWorld」を表示されます。