★悩み★
・Apache Sparkをインストールする手順を知りたい。
・インストールしたApache Sparkの使い方を知りたい。
・インストールしたSparkをPython経由で使用する手順を知りたい。
こういった「悩み」に答えます。
★本記事の内容★
① Apache Sparkをインストールする手順をご紹介
② インストールしたApache Sparkの運用手順をご紹介
③ インストールしたApache SparkをPython経由で使用する手順をご紹介
これからご紹介する「Apache Sparkをインストールする手順」を実践したことで、筆者は1時間で、Apache Sparkのインストールができました。
記事の前半では「Apache Sparkをインストールする手順」をコピペ可能な手順で紹介します。
記事の後半では「Apache Sparkの運用手順と使用手順」を具体的に紹介します。
この記事を読み終えることで、「Apache Sparkのインストール完了」だけではなく、「PythonでApache Sparkを使う方法」も理解した状態になります。
ちなみに、Java言語経由でApache Sparkを使用する手順を知りたい方は、以下の記事をご覧ください。
Apache Sparkをインストールする手順
「Apache Sparkをインストールする手順」をご紹介します。
★Apache Sparkをインストールする流れ★
手順1:Apache Hadoopのインストールとセットアップ
手順2:Apache Sparkのインストール
手順3:インストールしたApache Sparkのセットアップ
手順4:インストールしたApache Sparkの動作確認
上記の流れで、Apache Sparkのインストールができます。
上記の各手順は、以下の環境で動作確認済みです。
動作確認済み環境:CentOS Linux release 7.8.2003 (Core)
以降で、「Apache Sparkをインストールする流れ」の各手順に関してご紹介します。
また、マシン構成は以下を前提とします。
★マシン構成★
・マスタサーバ
→OS:CentOS7
→台数:1
→1コア
→4GBのメモリ
→ホスト名:master1
→IPアドレス:192.168.10.150
・スレーブサーバ
→OS:CentOS7
→台数:2
→1コア
→4GBのメモリ
→ホスト名:slave1、slave2
→IPアドレス:192.168.10.151と192.168.10.152
手順1:Apache Hadoopのインストールとセットアップ
「手順1:Apache Hadoopのインストールとセットアップ」に関してご紹介します。
まずは、Apache Hadoopを使える状態にしましょう。
Apache Hadoopは、Apache Sparkで利用するリソース管理を担います。
「Apache Hadoopのインストールとセットアップの手順」は、以下の記事をご覧ください。
既にApache Hadoopをインストールされている方は、本手順を省略してください。
以上で、「手順1:Apache Hadoopのインストールとセットアップ」は完了です。
手順2:Apache Sparkのインストール
「手順2:Apache Sparkのインストール」に関してご紹介します。
Apache Sparkの資材をダウンロードし展開します。
マスタサーバで以下のコマンドを順番に実行します。
$ su - hadoop ★spark実行ユーザです★
$ wget https://ftp.jaist.ac.jp/pub/apache/spark/spark-3.0.1/spark-3.0.1-bin-without-hadoop.tgz
$ tar -zxvf spark-3.0.1-bin-without-hadoop.tgz
$ mv spark-3.0.1-bin-without-hadoop /opt/oss/
以上で、「手順2:Apache Sparkのインストール」は完了です。
手順3:インストールしたApache Sparkのセットアップ
「手順3:インストールしたApache Sparkのセットアップ」に関してご紹介します。
Apache Sparkをセットアップするために、マスタサーバで以下のコマンドを順番に実行します。
# su - hadoop
$ echo "export SPARK_HOME=/opt/oss/spark-3.0.1-bin-without-hadoop/" >> ~/.bash_profile
$ echo "export SPARK_DIST_CLASSPATH=$(/opt/oss/hadoop-3.2.1/bin/hadoop classpath)" >> ~/.bash_profile
$ cd /opt/oss/spark-3.0.1-bin-without-hadoop/conf
$ cp spark-env.sh.template spark-env.sh
$ export PYSPARK_PYTHON=~/.pyenv/shims/python ★pythonのPATHを指定します★
$ export PYSPARK_DRIVER_PYTHON=~/.pyenv/shims/python ★pythonのPATHを指定します★
$ source ~/.bash_profile
以上で、「手順3:インストールしたApache Sparkのセットアップ」は完了です。
手順4:インストールしたApache Sparkの動作確認
「手順4:インストールしたApache Sparkの動作確認」に関してご紹介します。
Apache Sparkの動作確認するために、マスタサーバで以下のコマンドを実行します。
# su - hadoop
$ cd /opt/oss/spark-3.0.1-bin-without-hadoop
$ bin/spark-shell
2020-10-11 09:39:33,611 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://master1:4040
Spark context available as 'sc' (master = local[*], app id = local-1602376778801).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.0.1
/_/
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 1.8.0_222-ea)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
scala> ★Control + cで終了できます★
$
上記のような画面が表示されれば、Apache Sparkのインストールは無事に終了です。
以上で、「手順4:インストールしたApache Sparkの動作確認」は完了です。
上記の4手順で、Apache Sparkをインストールできました。
インストールしたApache Sparkの運用手順
「インストールしたApache Sparkの運用手順」に関してご紹介します。
★インストールしたApache Sparkの運用の流れ★
手順1:Sparkのリソースを管理するHadoopを起動
手順2:Sparkでアプリケーションを実行
上記の流れで、Apache Sparkを運用できます。
以降で、「インストールしたApache Sparkの運用の流れ」の各手順に関してご紹介します。
手順1:Sparkのリソースを管理するHadoopを起動
「手順1:Sparkのリソースを管理するHadoopを起動」に関してご紹介します。
Apache Sparkが利用するリソース(CPUやメモリなど)をHadoopで管理します。
そのため、Hadoopを起動する必要があります。
Hadoopの起動手順に関しては、以下の記事をご覧ください。
以上で、「手順1:Sparkのリソースを管理するHadoopを起動」は完了です。
手順2:Sparkでアプリケーションを実行
「手順2:Sparkでアプリケーションを実行」に関してご紹介します。
インストールしたApache Sparkでアプリケーションを実行する方法を説明します。
Sparkでアプリケーションを実行するには、「spark-submit」コマンドを利用します。
次章でPythonのアプリケーションをSparkで実行する方法をご紹介いたします。
以上で、「手順2:Sparkでアプリケーションを実行」は完了です。
上記の2手順で、インストールしたSparkを運用できます。
インストールしたApache SparkをPython経由で使用する手順
「インストールしたApache SparkをPython経由で使用する手順」に関してご紹介します。
今回は、「Python」を使った「テキスト内の単語を集計する」アプリケーションをSparkで実行する手順をご紹介します。
Pythonをインストールされていない方は、以下の記事をご覧ください。
以下の3手順でPython経由でApache Sparkを使用できます。
★PythonでインストールしたApache Sparkを使用する方法★
手順1:集計対象となるテキストを作成
手順2:PythonでSpark用のプログラムを作成
手順3:SparkでPythonのプログラムを実行
以降で、「PythonでインストールしたApache Sparkを使用する方法」の各手順に関して簡単に説明します。
手順1:集計対象となるテキストを作成
「手順1:集計対象となるテキストを作成」に関してご紹介します。
集計対象となるテキストを作成し、HDFSに格納します。
マスタサーバで以下のコマンドを順番に実行します。
# su - hadoop
$ echo "a b c a" > sample.txt
$ hadoop fs -mkdir blog
$ hadoop fs -put sample.txt blog
以上で、「手順1:集計対象となるテキストを作成」は完了です。
手順2:PythonでSpark用のプログラムを作成
「手順2:PythonでSpark用のプログラムを作成」に関してご紹介します。
Pythonで「テキスト内の単語を集計する」プログラムを作成します。
以下のwordcount.pyを作成しましょう。
from datetime import datetime
from pyspark.sql import DataFrameReader
from pyspark.sql import SparkSession
## 1. sparkの設定を作成
spark = SparkSession \
.builder \
.appName("wordcount application") \
.getOrCreate()
spark_context = spark.sparkContext
## 2. テキストファイルの読み込み
text_data = spark_context.textFile("blog/sample.txt")
## 3. 集計処理
def create_keyvalue(line):
rdd_list = []
word_list = line.split(" ")
for word in word_list:
rdd_list.append( (word, 1) )
return rdd_list
aggregated_data = text_data \
.flatMap(lambda x: create_keyvalue(x)) \
.reduceByKey(lambda x, y: x + y)
## 4. 集計結果をファイルへ保存
aggregated_data.saveAsTextFile("blog_output")
以上で、「手順2:PythonでSpark用のプログラムを作成」は完了です。
手順3:SparkでPythonのプログラムを実行
「手順3:SparkでPythonのプログラムを実行」に関してご紹介します。
先ほど作成したPythonのプログラム(wordcount.py)をSparkで実行します。
マスタサーバで以下のコマンドを順番に実行します。
# su - hadoop
$ ls
do.sh sample.txt wordcount.py
$ SPARK_CMD="/opt/oss/spark-2.4.5-bin-without-hadoop/bin/spark-submit"
$ ${SPARK_CMD} --master yarn --conf "spark.executor.memoryOverhead=600" \
--num-executors 2 \
wordcount.py
上記のコマンドを実行することでSpark上でPythonのプログラムが実行されます。
単語の集計結果は、マスタサーバで以下のコマンドを実行することで確認できます。
$ hadoop fs -ls blog_output
Found 3 items
-rw-r--r-- 1 hadoop supergroup 0 2020-10-11 10:32 blog_output/_SUCCESS
-rw-r--r-- 1 hadoop supergroup 18 2020-10-11 10:32 blog_output/part-00000
-rw-r--r-- 1 hadoop supergroup 9 2020-10-11 10:32 blog_output/part-00001
$ hadoop fs -cat blog_output/part-00000
('b', 1)
('c', 1)
$ hadoop fs -cat blog_output/part-00001
('a', 2)
$
無事に単語が集計できていることが確認できました。
以上で、「手順3:SparkでPythonのプログラムを実行」は完了です。
上記の3手順で、Python経由でインストールしたApache Sparkを使用できました。
【まとめ】Apache Sparkをインストールする手順【4手順】
今回の記事を通して、「Apache Sparkをインストールする手順」をご紹介することで、以下の悩みを解消しました。
★悩み★
・Apache Sparkをインストールする手順を知りたい。
・インストールしたApache Sparkの使い方を知りたい。
・インストールしたSparkをPython経由で使用する手順を知りたい。
「Apache Sparkをインストールする手順は?」と悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント