はじめに
Apache Sparkの勉強と、ついでにdockerの勉強もしようと思い、dockerのubuntuイメージでSparkをインストールしたのでまとめておきます。
もっと簡単に使うためにSequenceIQのDockerイメージっていうのもあるみたいです。
環境
・macOS 10.12.16
macOSはVMを立ててDockerデーモンを起動しないといけないみたいなので最初に
MacでDockerをインストールした後に必要な作業をやります。
Dockerコンテナ作成・起動
1. ubuntuのdockerイメージの取得
今回はubuntu16.04を指定してますが、欲しいバージョンを指定してください。
$ docker pull ubuntu:16.04
・取得したイメージ一覧の表示
$ docker images
2. コンテナの起動
コンテナに名前をつけて起動します。
$ docker run -it -d --name ubuntu1604 ubuntu:16.04
・起動中のコンテナ一覧の表示
$ docker ps
3. コンテナの中に入る
コンテナの中でbashを新規に動かす感じだと思います。
これでubuntuのrootにログインすることができました。
$ docker exec -it ubuntu1604 /bin/bash
Sparkのインストール
もろもろのインストールを行います。
最初にapt-get update
で更新しないとうまくいかず、少しハマりました。
$ apt-get update
$ apt-get install -y openjdk-8-jdk
$ apt install maven
$ apt-get install wget
wget
でsparkのバージョンを選んでダウンロードします。
http://ftp.riken.jp/net/apache/spark/
その後/usr/local/sparkをSPARK_HOMEとして、シンボリックリンクを貼ります。
$ wget http://ftp.riken.jp/net/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
$ tar zxvf spark-2.3.1-bin-hadoop2.7.tgz
$ mv spark-2.3.1-bin-hadoop2.7 /usr/local/
$ ln -s /usr/local/spark-2.3.1-bin-hadoop2.7 /usr/local/spark
.bashrcに下記を追記してパスを通します。
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
source
コマンドで反映させます。
$ source .bashrc
spark-shell
ちゃんと実行できました。
$ spark-shell --master local[*]
(中略)
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.3.1
/_/
Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_171)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
コンテナの停止
spark-shell
を実行した後Ctrl+C
で抜けた後、ubuntuからexit
します。
ubuntu1604のコンテナを停止したいときは下記のコマンドを実行します。
$ docker stop ubuntu1604
また起動したいときは下記のコマンドで起動できます。
$ docker start ubuntu1604
おわりに
Dockerfileを使えばSparkのインストールをもっと楽にできるみたいなのでこれから勉強します。
参考
https://qiita.com/kooohei/items/0e788a2ce8c30f9dba53
https://weblabo.oscasierra.net/docker-ubuntu1604/
https://qiita.com/rockhopper/items/0680a537838233fce323