EMR上のJupyter4.xからPySparkを使ってみた
Amazon EMRで立ち上げたSparkクラスタにJupyterを入れて
その上でPySparkを使う際に、詰まった点の対処法まとめ。
EMR立ち上げ
今回は検証用で
アプリケーション : All Applications: Hadoop 2.6.0, Hive 1.0.0, Hue 3.7.1, Mahout 0.11.0, Pig 0.14.0, and Spark 1.5.0
インスタンスタイプ : m3.xlarge
インスタンス数 : 1台
アクセス権限 : デフォルト
を用意。
Hueを入れる場合は、Hueが8888ポートを使用するため
Jupyterが8888ポート(デフォルト)を使用できなくなる。
その場合は、PCからアクセスできるように
セキュリティグループで穴をあける。
Python2.6 -> Python2.7へ
EMRで起動したEC2は、Pythonのバージョンが2.6.9なので、2.7に変更する。
元々2.7はインストールされているため、リンク先を変えるだけ。
sudo unlink /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
pip2.6 -> pip2.7へ
pipはアップグレードをして、リンク先を変更。
sudo pip install -U pip
sudo ln -s /usr/bin/pip-2.7 /usr/bin/pip
Jupyterのインストール
現在(2015年10月)だと、Jupyter4.0.6がインストールされる。
sudo pip install jupyter
Jupyterの起動
jupyter-notebook
プロファイルの作成について
jupyter-notebook
テンプレート設定ファイルを作成(出力先は~/.jupyter/jupyter_notebook_config.py)
jupyter notebook --generate-config
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
Hueを入れた場合は、c.NotebookApp.portに
セキュリティグループであけた8888以外のポートを設定。
profileというものはJupyter4.Xから、なくなったみたい?
configオプションを使えば、設定ファイルを指定できる。
例)
jupyter-notebook --config='~/.ipython/profile_nbservers/ipython_config.py'
環境変数のJUPYTER_CONFIG_DIRにディレクトリパスを指定すれば
そのディレクトリ内のjupyter_notebook_config.pyを読み込むようになる。
Jupyter上でSparkを使えるようにする
spark.masterをyarnからlocalに変更。
(これをしないと、SparkContextが止まってしまっていた)
# spark.master yarn
spark.master local
前は、~/.ipython/profile_<profile名>/startup/00-<profile名>-setup.pyで
Sparkの準備をしていたものの、それもできなくなったため
Jupyter Notebook上で以下のコマンドを実行している。
export SPARK_HOME='/usr/lib/spark'
import os
import sys
spark_home = os.environ.get('SPARK_HOME', None)
if not spark_home:
raise ValueError('SPARK_HOME environment variable is not set')
sys.path.insert(0, os.path.join(spark_home, 'python'))
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.2.1-src.zip'))
execfile(os.path.join(spark_home, 'python/pyspark/shell.py'))
ファイルにして読み込みでも良いかも。
Author And Source
この問題について(EMR上のJupyter4.xからPySparkを使ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/fuppi/items/b047fcbbb59cf1dece91著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .