在 Ubuntu 14.04 上架設 Spark 環境:使用 Spark Notebook

最近看到一本 Spark 的書籍,書名是 Hadoop + Spark 大數據巨量分析與機器學習整合開發實戰。雖然不是在打廣告,但是看到後面的範例就覺得很有趣 XD,分析大數據來做電影推薦等等,就買來跟著實作看看。

這本書前半大概都是在告訴你怎麼架設 Hadoop 與 Spark,不過說真的,因為有很多設定檔要改,架設真的會花不少時間,好在裡面都講得很清楚,所以跟著步驟做就行拉。

這裡我記錄一下 Spark 的安裝方式,以及怎麼使用 Spark Notebook 這類圖形介面,來加速開發。


安裝 Spark 的方式

這邊有兩種安裝方式

  • 安裝 Spark Notebook:已經把 Spark, Scala, Hadoop 等等包起來了,裝好就能用 GUI 介面操作,適合測試用。
  • 傳統方式安裝:慢慢安裝,要做些設定,能自己掌握架設的細節。

安裝 Spark Notebook

對於試玩 Spark 的我,跑 standalone 就足夠了,而且 Spark Notebook 就類似 iPython 那種介面,馬上就能把程式編譯執行,是相當有幫助的工具。

可以參考 spark notebook github,上面有詳盡的安裝方式,這裡我用的是 Quick start

直接進入下載頁面,選擇想要的版本下載

2016 03 21 下午7.09.57 e1458558666561 - 在 Ubuntu 14.04 上架設 Spark 環境:使用 Spark Notebook

因為我使用的是 Ubuntu,而且 Hadoop 2.6.0 之前用過,所以下載 spark-notebook_0.6.2-scala-2.11.7-spark-1.6.0-hadoop-2.6.0。記得要先裝 Java。

$ sudo apt-get install openjdk-7-jdk
$ wget https://s3.eu-central-1.amazonaws.com/spark-notebook/deb/spark-notebook_0.6.2-scala-2.11.7-spark-1.6.0-hadoop-2.6.0_all.deb 
$ sudo dpkg -i spark-notebook_0.6.2-scala-2.11.7-spark-1.6.0-hadoop-2.6.0_all.deb

下載完解壓縮,執行 spark-notebook 即可使用,GUI 介面預設會開在 port 9000

$ spark-notebook

2016 03 21 下午7.17.58 e1458559137369 - 在 Ubuntu 14.04 上架設 Spark 環境:使用 Spark Notebook

打開瀏覽器,進入 IP:9000,會看到 Spark Notebook 的網頁畫面 按下右上方的 new,新增一個 Scala 檔案

2016 03 21 下午7.17.40 e1458559245658 - 在 Ubuntu 14.04 上架設 Spark 環境:使用 Spark Notebook

舉簡單的例子,把 list [1, 2, 3] 放進 RDD,然後顯示出來。

用 Notebook 的好處是,他可以直接幫你畫圖型出來,不用自己去搞畫圖,對於開發實在很方便!

2016 03 21 下午7.17.27 e1458559455686 - 在 Ubuntu 14.04 上架設 Spark 環境:使用 Spark Notebook


傳統安裝方式

這邊裝的一樣也是 standalone,依序安裝 Java, Scala, Spark

$ sudo apt-get install openjdk-7-jdk
$ sudo apt-get install scala

接著到官網下載 Spark Pre Build 版本安裝 Spark

$ wget http://apache.stu.edu.tw/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz
$ tar xvf spark-1.6.1-bin-hadoop2.6.tgz

設定環境變數

$ vim ~/.bashrc
export PATH="$PATH:/usr/local/spark/bin"

如果是要安裝 iSpark 或是比較詳細的做法,可以參考大數學堂的影片

Jerry
Jerry

樂於分享的軟體工程師,曾在新創與大型科技公司實習,獲得黑客松競賽冠軍,擔任資安研討會講者。長期熱衷於資訊安全、雲端服務、網路行銷等領域,希望將科技知識分享給更多人。內容轉載請來信:jlee58tw@gmail.com

發表回應