jupyter配置scala和Spark學習環境
簡介:
Jupyter Notebook(此前被稱為 IPython Notebook)是一個互動式筆記本,支援運作 40 多種程式設計語言。Jupyter Notebook 的本質是一個 Web 應用程式,便于建立和共享文學化程式文檔,支援實時代碼,數學方程,可視化和 markdown。 用途包括:資料清理和轉換,數值模拟,統計模組化,機器學習等等
在學習Python的時候無意見發現了這個,很特别,很好用的一個東西。可以直覺的展示代碼和運作結果等等。後來發現它支援scala語言和Spark基本的學習。是以特别的整理了下配置。
安裝過程記錄
Anaconda配置
安裝Anaconda。【Anaconda附帶了很多東西,Python的很多用于科研的包、Ipython、Jupyter、Spider等。安裝過程略。安裝很簡單,不過建議網上再搜尋下。
配置jupyter
這裡配置一下jupyter的登入。因為預設的情況下,啟動Jupyter後,會打開一個浏覽器頁面。不過,當你一不小心把它關閉後,你需要去終端複制那個token。。比較累,比較煩。
打開Ipython。擷取密碼。
In []: from IPython.lib import passwd
In []: passwd()
#建議輸入密碼的時候,不輸入~省的下一次在其他浏覽器頁面打開的時候,還要再輸密碼
Enter password:
Verify password:
Out[]: 'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856'
複制這個:
接下來生成秘鑰:
openssl req -x509 -nodes -days -newkey rsa: -keyout mycert.pem -out mycert.pem
建立一個伺服器配置:
建立jupyter的配置檔案:
jupyter notebook --generate-config
vim /root/.jupyter/jupyter_notebook_config.py
#修改内容
c.NotebookApp.password = u'sha1:。。。。。。。。。。。' 這個填寫之前複制的那個
c.NotebookApp.certfile = u'/root/.jupyter/mycert.pem' 這個其實我不知道幹嘛的。。
c.NotebookApp.ip = '*'
c.NotebookApp.port =
之後就可以啟動了~[可以把這個放在背景~]
jupyter notebook
配置scala支援
這個需要特别的安裝下,安裝過程并不複雜
建議讀這個:
https://github.com/alexarchambault/jupyter-scala
把它clone下來,然後Simply run the
jupyter-scala
script of this repository to install the kernel. Launch it with
--help
to list available (non mandatory) options.
Once installed, the kernel should be listed by
jupyter kernelspec list
.
配置Spark
Spark 需要提前安裝好,版本不要太老~~
此處使用Apache toree給notebook安裝Scala kernel
toree官網下載下傳頁,不需要解壓,直接使用pip install安裝
wget https://dist.apache.org/repos/dist/dev/incubator/toree//snapshots/dev1/toree-pip/toree-.dev1.tar.gz
pip install toree-.dev1.tar.gz
接着使用一下指令安裝,其中spark://localhost.localdomain:7077為你的spark位址,/root/spark為你的spark安裝目錄
測試是否安裝成功,列出kernel清單,
python2 /home/youxiangyang/anaconda2/lib/python2/site-packages/ipykernel/resources
scala /home/youxiangyang/.local/share/jupyter/kernels/scala
spark1_scala /home/youxiangyang/.local/share/jupyter/kernels/spark1_scala
運作jupyter,你就可以看到在建立項目那裡多出了spark和scala。。
可能還會有較多的問題沒有處理完~(其實這時候,筆者已經可以開始用了,暫時還沒有遇到問題,如果大家在使用的時候發現了,可以留言讨論)