經用戶要求,需要安裝jupyter notebook供其使用來調用我們集羣的spark,因此需要搭建jupyter環境並啓動
我們的jupyter主要是提供python代碼的編寫,且在python中調用pyspark來使用集羣的spark資源。
查找了網上的教程和博客,記錄下自己安裝jupyter的過程和問題
前置條件
- 服務器已經安裝了python(我用的2.7)
- 服務器已經安裝了spark
- 服務器10.38.149.126
python環境
pip安裝
安裝jupyter需要用到python的包管理工具pip,該工具提供了對Python 包的查找、下載、安裝、卸載的功能。
檢查是否安裝了pip
沒有安裝,使用下面的命令安裝
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下載安裝腳本
$ sudo python get-pip.py # 運行安裝腳本
安裝成功
jupyter安裝
接下來就可以安裝jupyter,安裝jupyter的時候請使用spark用戶,如果使用root用戶安裝,安裝完之後用root啓動jupyter時,會提示jupyter不推薦用root啓動,這樣就會啓動不了。如果強制用spark啓動,啓動後打開頁面會報錯,無法運行python程序。
使用spark安裝,安裝最後會報錯,說沒有文件夾 的權限,因此需要釋放文件夾的權限chmod -R 777 /usr/lib/python2.7/site-packages
後面還會報幾個文件夾權限的問題,都釋放掉,然後再安裝,安裝完成
配置jupyter
先生成一個密碼,使用命令輸入密碼,會加密成sha1:.....
python -c "import IPython;print IPython.lib.passwd()"
使用下面命令生成配置文件jupyter_notebook_config.py在當前目錄的.jupyter下
jupyter notebook --generate-config
修改這個配置文件,在底部添加
# 運行所有IP訪問
c.NotebookApp.ip = '*'
c.NotebookApp.allow_root = True
# 啓動時是否自動打開瀏覽器
c.NotebookApp.open_browser = False
# 指定端口號
c.NotebookApp.port = 8888
# 密碼設置
c.NotebookApp.password = u'剛纔生成的密文(sha:...)'
# jupyter notebook工作目錄
c.ContentsManager.root_dir = '/home/spark/tmp/'
完成!
啓動jupyter
訪問http://seadoop-test134.wux.chin.seagate.com:8888
輸入剛纔的明文密碼,登陸成功
可以編寫代碼了!
在調用pyspark的時候可能會出現no module named pyspark錯誤,使用下面的代碼安裝一下
然後就可以使用pyspark了
開機啓動jupyter
編寫shell命令,將該命令放入/etc/rc.d/rc.local文件內,重啓服務器reboot後,可以直接訪問jupyter了
su - spark -c "jupyter notebook"