LoginSignup
18
16

More than 5 years have passed since last update.

Spark on Dockerで分散型機械学習を始める - Part2: UbuntuでIPython Notebookを使う

Last updated at Posted at 2015-01-17

sequenceiq/sparkのDockerイメージはCentOS 6.5を使っているので、そのままではIPythonのインスト-ルに失敗してしまいます。SequenceIQにはUbuntuのbaseimageもあります。これから自分でSparkのDockerfileを作ろうと思いましたが、ちょどよいイメージがLogBaseInc/docker-spark-ipythonがありました。

このシリーズ

CentOS 6.5の場合

sequenceiq/spark

前回作成したDockerコンテナはCentOS 6.5のbaseimageを使っています。

$ cat /etc/redhat-release
CentOS release 6.5 (Final)

Pythonのバージョンは2.6.6です。

$ python -V
Python 2.6.6

Python 2.7以上を使わないとiPythonがインストールできません。

$ curl https://bootstrap.pypa.io/get-pip.py -o - | sudo python
$ sudo pip install ipython
Collecting ipython
  Downloading ipython-2.3.1.tar.gz (11.9MB)
    100% |################################| 11.9MB 1.1MB/s
    ERROR: IPython requires Python version 2.7 or 3.3 or above.
    Complete output from command python setup.py egg_info:
    ERROR: IPython requires Python version 2.7 or 3.3 or above.

    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-bzXfTe/ipython

Ubuntu 14.04.1の場合

LogBaseInc/docker-spark-ipythonを使いDockerコンテナを起動します。

$ docker pull logbase/spark-ipython
$ docker run -d --name spark-ipython -p 8888:8888 logbase/spark-ipython

シェルを起動してバージョンを確認します。

$ docker exec -it spark-ipython /bin/bash
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Pythonのバージョンは2.7.6、IPythonは2.3.1です。

$ python -V
Python 2.7.6
$ ipython -V
2.3.1

IPython Notebookを使う

ngrokを使いDockerホストの8888ポートをトンネルします。

$ docker run -it --rm wizardapps/ngrok:latest ngrok $(docker inspect --format="{{ .NetworkSettings.IPAddress }}" spark-ipython):8888

ブラウザでIPython Notebookを開いて簡単なテストで動作確認します。

ipython-pyspark.png

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16