當前位置:
首頁 > 知識 > 十分鐘搭建私有 Jupyter Notebook 伺服器

十分鐘搭建私有 Jupyter Notebook 伺服器

做數據科學開發,目前最流行的語言之一是 Python,這主要得益於其提供 Numpy、Pandas等強大的軟體包,以及 Jupyter 這樣便捷的開發環境。

本文將介紹如何在一台雲伺服器上配置 Jupyter Notebook 環境,從此只要有瀏覽器和網路,就是可以隨時隨地進行數據科學開發工作,不用擔心家庭環境與辦公環境多次配置的問題。

前提條件

如果想跟隨本教程一起完成環境搭建工作,需要擁有一台雲伺服器,筆者使用的是騰訊雲提供的 CVM,操作系統為 Ubuntu 14.04。如果不滿足該條件,可以考慮通過筆者的推薦鏈接購買。

如果你打算長期使用該伺服器,可以參考這篇文章:如何正確配置 Ubuntu 14.04 雲伺服器?

購買伺服器並完成配置之後,即可通過如下命令登錄:


安裝依賴

Jupyter 是使用 Python 編寫的一個軟體包。而且,我們希望在 Jupyter 中使用 Python 2 和 Python 3等多個版本,因此先安裝 Python 3 和 pip 。(Ubuntu 14.04 默認安裝了 Python 2.7)

配置國內 PyPI 源

後續使用 pip 安裝第三方庫時,由於受國內網路限制,速度會比較慢。我們首先將 PyPI 的源修改為國內源,這裡使用的是中國科學技術大學提供的源。

編輯 ~/.pip/pip.conf ,在最上方加入如下內容:

配置好之後,即可享受風一般的安裝速度。


虛擬環境

下面,為 Jupyter 創建一個獨立的虛擬環境,與系統自帶的 Python 隔離開來。為此,先安裝 virtualenv 庫:

由於我們目前是以 ubuntu 用戶,可能要以 sudo 執行命令,避免 pip 安裝時出現許可權問題。

然後,創建一個專門的虛擬環境,並直接激活:

在創建虛擬環境時,指定的 Python 版本為 3,方便後續的操作。


安裝 Jupyter

Jupyter 的安裝其實很簡單,只需要執行一行命令即可:

由於會安裝其他相關的依賴庫,這一步所需的時間可能較長。


配置 Jupyter

安裝好 Jupyter 之後,我們需要對其進行簡單的配置,比如設置訪問密碼,默認不自動打開瀏覽器等。Jupyter 默認會使用 ~/.jupyter/jupyter-noteboook-config.py 配置文件,我們在 ~/venv/ 目錄下新建一個 conf.py 文件作為自定義配置文件。

創建密碼

為了方便,我們選擇 jupyter 作為訪問密碼。

需要在命令行依次執行如下命令,結束之後會得到一個密碼的 sha1 值,後續要填寫在配置文件中。


其他設置

此外,為了能夠直接通過瀏覽器打開 地址,訪問 Jupyter Notebook,我們還要做如下設置:

將上面兩處設置,寫入 文件,然後執行如下命令即可:

!


新建 Jupyter 系統服務

為了能夠長時間訪問 Jupyter Notebook,避免每次都需登陸伺服器手動執行命令,我們需要讓該命令一直在後台自動運行,最好是支持系統重啟時自動啟動。因此,我們可以將 jupyter 變成一個系統服務。

創建 文件,寫入如下內容:

上面定義了該服務在 runlevel 為 2、3、4、5 時啟動,而在非這幾個 runlevel 時停止該服務。

運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動 運行級別1:單用戶工作狀態,root許可權,用於系統維護,禁止遠程登陸 運行級別2:多用戶狀態(沒有NFS) 運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式 運行級別4:系統未使用,保留 運行級別5:X11控制台,登陸後進入圖形GUI模式 運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動

配置好了 文件之後,就能夠通過如下命令啟動、停止和重啟 Jupyter Notebook 了:

這樣,每次系統啟動或者出錯重啟時,都會啟動 Jupyter Notebook。


配置 Nignx 並創建系統服務

下一步,我們設置 Nginx 作為 Jupyter 的反向代理伺服器。首先,安裝 Nginx,並修改 設置:

修改其中的 location / 部分,並注釋掉某些行,具體見下面的示例:

這一步需要注釋掉 try_files 一行,並新增 ,將對 的訪問請求轉發至該地址 。

保存並退出文件,然後重啟 Nginx 服務即可。

之後,再修改 文件:

並重啟 Jupyter 服務:

現在我們訪問雲伺服器的 IP 地址時,就會進入 Jupyter Notebook 的登陸頁面。


製作系統鏡像

雖然說上面的整個過程並不太複雜,一步一步跟著教程做的話可能十分鐘左右就可以搞定了。但是如果希望以後也能夠快速複製同樣的系統,將整個過程編寫為一個腳本來自動安裝、配置時比較好的選擇。不過,最終安裝、配置的時間還是會有的。

推薦一種更加快速的方法,即使用騰訊雲等雲服務商提供的製作鏡像功能,將配置好的系統直接打包,以後可以直接使用鏡像,只要1-2分鐘,就可以啟動 Jupyter Notebook 伺服器了。

題圖:pexels,CC0 授權。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 編程派 的精彩文章:

三問 Python:能幹什麼?為什麼火?會繼續火嗎?
10G+AI人工智慧/複雜系統/數據挖掘/深度學習/Python資料

TAG:編程派 |