使用Spark分析拉勾網招聘信息(三): BMR 入門

簡述

本文,意在以最小的篇幅,來幫助對大數據和Spark感興趣的小夥伴,能儘快搭建一個可用的Spark開發環境.力求言簡意賅.文章,不敢自稱BMR的最佳實踐,但絕對可以幫助初學者,迅速入門,能夠專心於Spark本身的學習和實踐.不服的童鞋,可以先自己折騰下BMR,再返回來讀這篇文章O(∩_∩)O哈!

創建 BMR 實例

假定,你已經有了一個經過認證的百度開發者賬號,就像系列第一篇文章講的那樣.什麼?沒有?那基本,沒有必要繼續往下讀了,明天再來吧.沒有經過認證的百度開發者賬號,應該是沒有權限創建 BMR 實例的.

1.登錄

網址是 https://login.bce.baidu.com/ 填寫賬號和密碼,大家都懂的.建議收藏下,應爲百度開放雲,搜索時,很容易被導流到百度雲盤上,這是兩個不同的東西.

2.充值

在 “管理控制檯”,個人信息附近分欄下,有個”充值”按鈕.至少應該保證賬戶餘額是100元,否則應該是無法成功創建BMR的.

3.創建BMR

點擊頂部的產品服務 –> 百度MapReduce –> 創建集羣.

創建BMR

在創建BMR界面,”bos://”點擊下拉箭頭,新創建即可;集羣配置–鏡像版本,要選擇 “BMR 0.2.0(hadoop 2.6”,否則無法使用openVPN訪問;內置模板,選擇 “Spark”,其他自己隨意寫即可.當然,要自己記住密碼,等會兒還要用的.

創建BMR

就這樣,大概10分鐘後,就初始化完成了.在等待的這段時間,建議你去搜搜大數據或者spark相關的討論,說不定會有額外收穫.

使用 openVPN 訪問 BMR

假定,你現在已經有一個初始化完成的 BMR 實例.點擊實例名稱,進入詳情頁,畫風是這樣的.

使用 openVPN 訪問 BMR

使用 openVPN 訪問 BMR

點擊”工具下載”中的 openvpn-confi.zip 下載到本地,然後按照教程配置即可,教程參見: (https://cloud.baidu.com/doc/BMR/GettingStarted.html#.E4.BD.BF.E7.94.A8OpenVPN.E8.AE.BF.E9.97.AE.E9.9B.86.E7.BE.A4)[https://cloud.baidu.com/doc/BMR/GettingStarted.html#.E4.BD.BF.E7.94.A8OpenVPN.E8.AE.BF.E9.97.AE.E9.9B.86.E7.BE.A4]

OpenVPN服務僅支持訪問鏡像類型爲Hadoop 2.6(bmr 0.2.0)的集羣,也就是說如果你的BMR實例中沒有”工具下載”一欄,說明你創建時鏡像類型選錯了.

配置好openVPN後,就可以通過”節點信息”中,各個節點的內網地址來訪問了,主要用到的是MASTER節點.另外,我發現配置好openVPN後,我也可以通過內網地址直接訪問我的其他百度雲服務了,比如 雲服務器,不是十分確定箇中緣由,難道都在同一個機房? MASTER 節點,內網地址訪問的畫風一起感受下:

使用 openVPN 訪問 BMR

另外,熟悉服務器基本操作的人,可能會ssh登錄Master節點.當然是完全可以的.一個BMR節點,是一個獨立的完整的服務器.我甚至給上面配置過node開發環境,不過後來就沒折騰了,因爲這個處理完數據就釋放了,一直開着太費錢.當然,當遇到某些特殊問題的時候,還是需要自己ssh登錄去處理的.比如,我的 zeppelin 服務,曾經崩潰過一次,我只能自己ssh上去重啓.客服也是可以的,但這點小事都解決不了,豈不是顯得我很LOW?!

使用 hue 導入數據到BMR

hue的訪問地址爲: 內網地址的8888端口,如 http://192.168.0.55:8888,畫風是這樣的:

使用 hue 導入數據到BMR

用戶名和密碼是自定義的,密碼隨意,建議用戶名填寫 hdfs 否則導入的數據,待會兒無法在zeppelin中使用,這涉及到一個用戶組權限的問題.感興趣的自己研究下,我不細說了.

點擊 File Browser –> 上傳 –> zip/tgz文件,然後選擇你昨天處理好的 職位數據文件即可.沒能成功的童鞋,可以直接去文首的github項目中下載:https://github.com/ios122/spark_lagou/raw/master/jobs.zip

使用 hue 導入數據到BMR

使用 hue 導入數據到BMR

使用 hue 導入數據到BMR

數據導入OK了.如果發現發現上傳完成後,一直卡在上傳表單頁不動,直接點叉叉號關閉就好了,它會後臺解壓的.

使用 zeppelin 讀取數據

BMR 的 zeppelin 的服務部署在 8093 端口,如http://192.168.0.55:8093/,這是我打印出所有端口,排查出來的,文檔上沒有絲毫提及.不清楚文檔爲啥不提,但 zeppelin 可是最流行的Spark交互式開發工具.第一次訪問,會有些慢.應該在初始化某些東西.

使用 zeppelin 讀取數據

Create New Note,然後開始練習吧:

使用 zeppelin 讀取數據

使用 zeppelin 讀取數據

讀取並打印結構的腳本:

val job = sqlContext.read.json("jobs")
job.registerTempTable("job")
job.printSchema()

初覺沒有什麼,但是仔細想下,這可是幾百個文件,裏面是確實存在異常數據的.當然,真正神奇的地方,是讀取之後,可以直接基於此進行各種複雜的聚合運算與分析.這是下一篇的主題了.

注意: 練習完,注意釋放 BMR 實例,否則會一直計費的.

附:zeppelin 啓動和重啓的腳本

我相信,你是有極大可能,把 zeppelin 服務搞掛的,當內存開銷過大時

cd /usr/lib/zeppelin-0.5.0-incubating
bin/zeppelin-daemon.sh start
bin/zeppelin-daemon.sh stop

本系列專屬github地址:https://github.com/ios122/spark_lagou

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章