Spark 2.4.4 Install on CentOS7

# はじめに

CentOS 7 に Spark 2.4.4 と Maven 3.6.3 を導入する手順を確認します。



# CentOS 7 構築

手元の仮想環境だったり、パブリッククラウドだったり、好きな場所で CentOS 7 を作りましょう。自分は、Oracle Cloud Infrastructure(以下 OCI)で作りました。



# Firewalld 停止

OCI 側に仮想ファイアウォールがあるため、CentOS 上の Firewalld を停止

```
sudo systemctl stop firewalld
sudo systemctl disable firewalld
```



# Open JDK 8 の Install

Spark の動作に必要な Java 8 (記事の手順ではOpen JDK 8) を Install

好きな JDK 8 で問題ないです。

```
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
```



依存関係解決例

```
===========================================================================================================================
Package                                Arch              Version                                 Repository          Size 
===========================================================================================================================
Installing:
 java-1.8.0-openjdk                     x86_64            1:1.8.0.242.b08-0.el7_7                 updates            293 k 
 java-1.8.0-openjdk-devel               x86_64            1:1.8.0.242.b08-0.el7_7                 updates            9.8 M 
Installing for dependencies:
 atk                                    x86_64            2.28.1-1.el7                            base               263 k 
 avahi-libs                             x86_64            0.6.31-19.el7                           base                61 k 
 cairo                                  x86_64            1.15.12-4.el7                           base               741 k 
 copy-jdk-configs                       noarch            3.3-10.el7_5                            base                21 k 
 cups-libs                              x86_64            1:1.6.3-40.el7                          base               358 k 
 dejavu-fonts-common                    noarch            2.33-6.el7                              base                64 k 
 dejavu-sans-fonts                      noarch            2.33-6.el7                              base               1.4 M 
 fontconfig                             x86_64            2.13.0-4.3.el7                          base               254 k 
 fontpackages-filesystem                noarch            1.44-8.el7                              base               9.9 k 
 fribidi                                x86_64            1.0.2-1.el7_7.1                         updates             79 k 
 gdk-pixbuf2                            x86_64            2.36.12-3.el7                           base               570 k 
 giflib                                 x86_64            4.1.6-9.el7                             base                40 k 
 graphite2                              x86_64            1.3.10-1.el7_3                          base               115 k 
 gtk-update-icon-cache                  x86_64            3.22.30-3.el7                           base                28 k 
 gtk2                                   x86_64            2.24.31-1.el7                           base               3.4 M 
 harfbuzz                               x86_64            1.7.5-2.el7                             base               267 k 
 hicolor-icon-theme                     noarch            0.12-7.el7                              base                42 k 
 jasper-libs                            x86_64            1.900.1-33.el7                          base               150 k 
 java-1.8.0-openjdk-headless            x86_64            1:1.8.0.242.b08-0.el7_7                 updates             32 M 
 javapackages-tools                     noarch            3.4.1-11.el7                            base                73 k 
 jbigkit-libs                           x86_64            2.0-11.el7                              base                46 k 
 libICE                                 x86_64            1.0.9-9.el7                             base                66 k 
 libSM                                  x86_64            1.2.2-2.el7                             base                39 k 
 libX11                                 x86_64            1.6.7-2.el7                             base               607 k 
 libX11-common                          noarch            1.6.7-2.el7                             base               164 k 
 libXau                                 x86_64            1.0.8-2.1.el7                           base                29 k 
 libXcomposite                          x86_64            0.4.4-4.1.el7                           base                22 k 
 libXcursor                             x86_64            1.1.15-1.el7                            base                30 k 
 libXdamage                             x86_64            1.1.4-4.1.el7                           base                20 k 
 libXext                                x86_64            1.3.3-3.el7                             base                39 k 
 libXfixes                              x86_64            5.0.3-1.el7                             base                18 k 
 libXft                                 x86_64            2.3.2-2.el7                             base                58 k 
 libXi                                  x86_64            1.7.9-1.el7                             base                40 k 
 libXinerama                            x86_64            1.1.3-2.1.el7                           base                14 k 
 libXrandr                              x86_64            1.5.1-2.el7                             base                27 k 
 libXrender                             x86_64            0.9.10-1.el7                            base                26 k 
 libXtst                                x86_64            1.2.3-1.el7                             base                20 k 
 libXxf86vm                             x86_64            1.1.4-1.el7                             base                18 k 
 libfontenc                             x86_64            1.1.3-3.el7                             base                31 k 
 libglvnd                               x86_64            1:1.0.1-0.8.git5baa1e5.el7              base                89 k 
 libglvnd-egl                           x86_64            1:1.0.1-0.8.git5baa1e5.el7              base                44 k 
 libglvnd-glx                           x86_64            1:1.0.1-0.8.git5baa1e5.el7              base               125 k 
 libjpeg-turbo                          x86_64            1.2.90-8.el7                            base               135 k 
 libthai                                x86_64            0.1.14-9.el7                            base               187 k 
 libtiff                                x86_64            4.0.3-32.el7                            base               171 k 
 libwayland-client                      x86_64            1.15.0-1.el7                            base                33 k 
 libwayland-server                      x86_64            1.15.0-1.el7                            base                39 k 
 libxcb                                 x86_64            1.13-1.el7                              base               214 k 
 libxshmfence                           x86_64            1.2-1.el7                               base               7.2 k 
 libxslt                                x86_64            1.1.28-5.el7                            base               242 k 
 lksctp-tools                           x86_64            1.0.17-2.el7                            base                88 k 
 mesa-libEGL                            x86_64            18.3.4-6.el7_7                          updates            109 k 
 mesa-libGL                             x86_64            18.3.4-6.el7_7                          updates            165 k 
 mesa-libgbm                            x86_64            18.3.4-6.el7_7                          updates             39 k 
 mesa-libglapi                          x86_64            18.3.4-6.el7_7                          updates             45 k 
 pango                                  x86_64            1.42.4-4.el7_7                          updates            280 k 
 pcsc-lite-libs                         x86_64            1.8.8-8.el7                             base                34 k 
 python-javapackages                    noarch            3.4.1-11.el7                            base                31 k 
 python-lxml                            x86_64            3.2.1-4.el7                             base               758 k 
 ttmkfdir                               x86_64            3.0.9-42.el7                            base                48 k 
 tzdata-java                            noarch            2019c-1.el7                             updates            187 k 
 xorg-x11-font-utils                    x86_64            1:7.5-21.el7                            base               104 k 
 xorg-x11-fonts-Type1                   noarch            7.5-9.el7                               base               521 k 

Transaction Summary
=========================================================================================================================
```



# Maven 3.6.3 Install (Option)

Maven は、Spark の動作には必要ありませんが、Spark 用の Java アプリケーションを作るときに使います。

以下のURLでダウンロードURLを確認します。
https://maven.apache.org/download.cgi

![1587385604751.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/0ffd981e-7793-0ef6-1c75-cbaf7aeeab18.png)



ダウンロードページでコピーしたURLを使って、CentOS 上に tar.gz ファイルをダウンロードします

```
mkdir ~/maveninstall
cd ~/maveninstall
wget https://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
```



次の手順に従ってインストールしていきます。
https://maven.apache.org/install.html

tar.gz ファイルを解凍

```
tar xfvz apache-maven-3.6.3-bin.tar.gz
```



環境変数設定
bashrc に追記

```
echo 'export PATH=$PATH:$HOME/maveninstall/apache-maven-3.6.3/bin' >> .bashrc
```



bashrc 再読み込み

```
source ~/.bashrc
```



mvn コマンドが実行可能確認します

```
[opc@spark01-63591 ~]$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/opc/maveninstall/apache-maven-3.6.3
Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-1062.12.1.el7.x86_64", arch: "amd64", family: "unix"
[opc@spark01-63591 ~]$ 
```





# Spark 2.4.4 Install

下記の URL から、Spark 用の tar.gz ファイルのダウンロード先を確認します。

https://spark.apache.org/downloads.html
2.4.4 を Insall したいので、Archived を選択

![1587318673080.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/05733628-5419-a220-986a-52aeb38a018b.png)



ダウンロード URL のコピー

![1587319171172.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/c63c2541-2302-6802-ca7c-713619f2bdb9.png)



ダウンロードページでコピーしたURLを使って、CentOS 上に tar.gz ファイルをダウンロードします

```
mkdir ~/sparkinstall
cd ~/sparkinstall
wget https://archive.apache.org/dist/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz
```



解凍

```
tar zxvf spark-2.4.4-bin-hadoop2.7.tgz
```



環境変数設定
bashrc に追記

```
echo 'export SPARK_HOME=$HOME/sparkinstall/spark-2.4.4-bin-hadoop2.7' >> .bashrc
echo 'export PATH=$PATH:$SPARK_HOME/bin' >> .bashrc
```



bashrc 再読み込み

```
source ~/.bashrc
```



Spark Shell のバージョン確認
2.4.4 と表示されている

```
[opc@spark01-63591 ~]$ spark-shell --version
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.4.4
      /_/

Using Scala version 2.11.12, OpenJDK 64-Bit Server VM, 1.8.0_242
Branch 
Compiled by user  on 2019-08-27T21:21:38Z
Revision
Url
Type --help for more information.
```



Spark UI を起動してアクセス

```
cd $SPARK_HOME
./sbin/start-master.sh
```



実行例

```
[opc@spark01-63591 spark-2.4.4-bin-hadoop2.7]$ ./sbin/start-master.sh
starting org.apache.spark.deploy.master.Master, logging to /home/opc/sparkinstall/spark-2.4.4-bin-hadoop2.7/logs/spark-opc-org.apache.spark.deploy.master.Master-1-spark01-63591.out
[opc@spark01-63591 spark-2.4.4-bin-hadoop2.7]$ 
```



Web ブラウザで 8080 ポートにアクセス (Network Security Group で 8080 を開けるようにしてください)
http://<your ipaddress>:8080/

![1587320586455.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/a87402f3-e432-1558-93c3-5f599793a8e6.png)



# 参考URL

Spark 2.4.4 の Document
https://spark.apache.org/docs/2.4.4/

Spark Document
https://spark.apache.org/

How To Install Apache Spark on CentOS 7
https://wpcademy.com/how-to-install-apache-spark-on-centos-7/