動機
ApacheSparkを自宅で勉強できるように環境構築してみた。構築環境
- OS Windows10
- 仮想化ソフト: Oracle VM VirtualBox&vagrant
- 仮想OS:CentOS7.6
- ApacheSpark-2.4.0
1). 仮想化ソフトのインストール
公式サイトからWindows版の最新版をインストール・Oracle VM VirtualBox
https://www.virtualbox.org/
・vagrant
https://www.vagrantup.com/
2). 仮想環境作成
好きな場所にディレクトリ作成し「vagrant init centos/7」を実行 ※今回はC:\workspace\centos7C:\workspace\centos7>vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
ディレクトリに作成されたVagrantfileを編集します
#46行目あたりに共有フォルダの設定を追記
config.vm.synced_folder "./workspace", "/home/vagrant/workspace"
#51行目あたりにメモリの割り当て量を追記
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
共有フォルダを作成しておき「vagrant up」を実行
※初回は時間がかかります
処理が完了し「vagrant ssh」で接続できれば成功
C:\workspace\centos7>vagrant ssh
Last login: Sun Feb 24 10:34:45 2019 from 10.0.2.2
[vagrant@localhost ~]$ ls
workspace
CentOSの日本語化
[vagrant@localhost ~]$sudo yum -y install ibus-kkc vlgothic-*
[vagrant@localhost ~]$ sudo localectl set-locale LANG=ja_JP.UTF-8
[vagrant@localhost ~]$ source /etc/locale.conf
#日本語化されているか確認
[vagrant@localhost ~]$ echo $LANG
ja_JP.UTF-8
タイムゾーンを日本に設定
[vagrant@localhost ~]$ sudo timedatectl set-timezone Asia/Tokyo
#local timeが日本か確認
[vagrant@localhost ~]$ sudo timedatectl
Local time: 日 2019-02-24 19:47:20 JST
Universal time: 日 2019-02-24 10:47:20 UTC
RTC time: 日 2019-02-24 10:47:18
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
Java8のインストール
#ダウンロード先リンクは適宜変更
[vagrant@localhost ~]$curl -LO -H "Cookie: oraclelicense=accept-securebackup-cookie" \
>"https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.rpm"
[vagrant@localhost ~]$sudo rpm -Uvh jdk-8u201-linux-x64.rpm
#環境変数の設定
[vagrant@localhost tmp]$ sudo vi /etc/profile
# 最終行あたりに追記
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
#再読み込み
[vagrant@localhost tmp]$ source /etc/profile
#確認
[vagrant@localhost tmp]$ echo ${JAVA_HOME}
/usr/java/default
ApacheSpark-2.4.0のインストール
#めっちゃ時間がかかる
[vagrant@localhost tmp]$ curl -O https://www-us.apache.org/dist/spark/spark-2.4.0/spark
-2.4.0-bin-hadoop2.7.tgz
#フォルダ名が長いのでシンボリックリンク作成
[vagrant@localhost opt]$ sudo ln -s spark-2.4.0-bin-hadoop2.7 spark
#環境変数用のシェルを作成
[vagrant@localhost profile.d]$ sudo vi /etc/profile.d/spark.sh
#追記
export SPARK_HOME=/opt/spark
#再読み込み
[vagrant@localhost profile.d]$ source /etc/profile
#確認
[vagrant@localhost profile.d]$ echo ${SPARK_HOME}
/opt/spark
#サンプルプログラム実行
${SPARK_HOME}/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.0.jar \
10
#円周率っぽい値が出力されていたら成功
Pi is roughly 3.142647571323786
感想
自分用の設定多すぎて全然最短じゃなかった… 次はHDFSとの連携やscalaの自作jarで実行できたらまとめたい。・参考
日本語化
https://www.server-world.info/query?os=CentOS_7&p=japanese
Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク
https://www.amazon.co.jp/dp/B01AXQNTJE/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1