Docker+Spark+Jupyter=文字資料處理邏輯測試平臺容器化
寫在前面
之前寫過一篇“Spark+Jupyter=線上文字資料處理邏輯測試平臺”
[http://www.jianshu.com/p/bbd4190089e7]
這幾天要把這玩意兒放到我自己的阿里雲上線,供一些正在學習Python文字處理的基友們試用,然後按著之前的步驟又配了一次環境。這臺伺服器配置渣網速慢,光編譯scipy就假死了好幾次。就算有著自己寫的教程一步步來都要煩死了。
生無可戀的我攤在桌子上,目光掃到了一本書——《Docker技術入門與實戰》,心中突然就有一個作死的想法:乾脆把這玩意兒容器化好了,資料處理+Spark聽起來就很吸引人啊有木有。
說幹就幹,結合之前的教程我決定再來一次Docker版本的文字資料處理邏輯測試平臺搭建。
事實上你可以把這篇文章看作是Docker入門操作的教程,因為裡面主要講述的是Docker的部署,修改與提交
準備工作
使用Docker的話其實是很有好處的,在Docker的映象站裡已經有人家搭好的基礎款jupyter映象,我們只需要往裡面新增Spark環境即可。
同樣預設使用的是Ubuntu或者Debian的機器,並且知道Docker是用來幹什麼的即可。
安裝Docker
目前新版本的Ubuntu和Debian應該都能直接使用apt-get安裝docker,執行以下命令即可
$apt-get -y install docker.io
之後輸入
$service docker status
$service docker start
確保docker服務已啟動
如果docker沒有建立/usr/bin/docker的話,執行
ln -sf /usr/bin/docker.io /usr/local/bin/docker
映象下載
前面說過Docker的映象站上已經有基於Jupyter的資料處理映象可供下載了,這映象分成兩個版本:
- dataquestio/python3-starter
- dataquestio/python2-starter
由於我的朋友大部分使用的是Py2,所以我選擇了dataquestio/python2-starter這個版本,至於Py3如果有需要後期在jupyter裡新增kernel即可。
執行
$docker pull dataquestio/python2-starter
坐等進度條跑完之後執行
$docker images
即可看到目前所有的映象,我們很高興的看到dataquestio/python2-starter已經在列表裡了
內容新增
首先要準備三樣東西:
- hadoop2.6.0.tar.gz
- spark-1.6.1-bin-hadoop2.6.tar.gz
- scala-2.10.6.tar.gz
我們要把這三個檔案放到容器裡去,所以首先我們要執行容器
docker run -v /your/file/path:/mnt dataquestio/python2-starter
這行命令的主要作用是執行容器並將你的檔案路徑掛載到容器系統的/mnt路徑下,這裡如果不懂的話建議查查docker容器的執行原理。
之後這個終端會列印出jupyter的執行資訊,表示docker已經開始時運作。保留這個終端新建一個終端視窗,執行
$docker ps
會看到shell列印出所有正在執行的容器的資訊,其中第一項是容器的id,複製並執行
$docker exec -it yourcontainerid /bin/bash
你會發現你的shell已經進入容器並可以對容器環境進行操作了,進入/mnt並按照上一篇教程
[http://www.jianshu.com/p/bbd4190089e7]
對spark環境進行配置,不過這個容器並沒有安裝Java,所以你需要執行
$add-apt-repository ppa:webupd8team/java
$apt-get update
$apt-get install oracle-java8-installer
並在之後對bashrc或者bash_profile進行修改時加入JAVA_HOME的配置
export JAVA_HOME=/usr/lib/jvm/java-8-oracle"
export PATH=$PATH:$JAVA_HOME/bin
打包映象
在spark配置好並確定你的jupyter能正常使用pyspark之後退出容器的shell,執行
docker ps
你會發現容器的id已經改變,這說明這個容器已經被你新增過內容,不再是之前你下載的映象,所以你需要將這個容器打包成一個新映象,之後你就可以在任意裝有docker的平臺上部署自己的容器了。
打包容器使用docker commit命令
docker commit -m "Added Spark Support" -a "Author: yourname" $newCotainerID $newImagename
如果順利的話命令會返回新的docker映象id資訊,執行
docker images
即可檢視你的新映象
相關文章
- 剖析大資料平臺的資料處理大資料
- 大資料處理平臺都有哪些?大資料
- Python自動化測試-使用Pandas來高效處理測試資料Python
- 日均請求量百億級資料處理平臺的容器雲實踐
- MySQL邏輯查詢處理MySql
- 自動化測試平臺
- 介面自動化測試-apiAutoTest 優化之資料依賴處理API優化
- 易華錄 X ShardingSphere|葫蘆 App 後臺資料處理的邏輯捷徑APP
- 測試筆試邏輯思維題筆試
- 批次繫結加快資料處理測試
- Apache Wayang :跨平臺資料處理系統Apache
- 介面自動化測試:apiAutoTest使用re 處理資料依賴API
- 測試平臺後端優化後端優化
- UI 自動化測試平臺UI
- Golang 單元測試 - 邏輯層Golang
- SAP gateway處理multiple key的邏輯Gateway
- 淺談zip格式處理邏輯漏洞
- 查詢處理的邏輯順序
- 談一談前端多容器(多webview平臺)處理方案前端WebView
- RocketMQ Connect 構建流式資料處理平臺MQ
- 前端業務程式碼配置化處理條件判斷邏輯前端
- 處理文字資料(上):詞袋
- 大資料平臺之大資料處理系統的架構大資料架構
- Django 介面自動化測試平臺Django
- API自動化測試平臺,支援場景化的API測試API
- 軟體測試的底層邏輯
- 優化邏輯Standby的資料同步效能優化
- 新潮測試平臺--慎用 PRC 返回的資料 (二)
- 測試平臺之介面測試
- 資料融合平臺,資料服務一站式處理
- Atom for Mac平臺文字編輯器Mac
- Nginx(二): worker 程式處理邏輯-流程框架Nginx框架
- Spring MVC的請求處理邏輯SpringMVC
- WM-QM未清TR處理邏輯
- Android 介面顯示與邏輯處理Android
- Python文字資料分析與處理Python
- 文字檢測預處理地址
- 計算機程式的思維邏輯 (93) – 函式式資料處理 (下)計算機函式