圖片來源:https://zeppelin.incubator.apache.org
先前介紹了使用Ipython Notebook來使用PySpark(連結),那麼麻煩的設定就是為了能夠藉由Ipython notebook的介面來使用spark.Ipython Notebook可以讓使用者立即與程式碼互動,對於資料分析或觀察都相當的方便.這麼好用的工具,當然也有大大開發了Spark的版本,但是設定上比較麻煩,就沒有特別介紹.但是好工具總是不寂寞,今天要介紹的Zeppelin,由NFLAB開發,在2015年三月正式加入Apache家族,不但可以直接以Ipython notebook的介面來操作Spark,還有令人驚訝的視覺化功能.
Zeppline的安裝非常簡單(Github)
- 在本機上使用
git clone https://github.com/apache/incubator-zeppelin.git
抓下專案. - 如果是ubuntu的環境,請先安裝
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo apt-get install git
sudo apt-get install maven(ubuntu上請安裝3.1.1版本,不然compile會失敗https://maven.apache.org/download.cgi)
sudo apt-get install npm - 安裝完後進入專案的資料夾中,執行
mvn clean package
(這邊會幫你連spark一併安裝好,如果要安裝其他版本的spark請參考) - 預設安裝是單機的環境,如果要改成分散式環境也請參考官方github,手邊沒有環境可以玩
- 執行
./bin/zeppelin-daemon.sh start
接著連線到htpp://localhost:8080
(localhost可以改成ip位置,如果使用的是VM,要連8081 port一起曝露出來) - 連線後畫面如這樣:
- 安裝好後有個教學用的notebook-zeepline toturial點開後可以看到介面
- 有玩過ipython notebook的對這介面一定不陌生,這邊環境跟repl一樣,即時可以看到程式執行結果,右上角的齒輪按下去可以看到提示
- 每個操作視窗中第一行如果沒有設定,或打上%spark就是代表這邊可以直接輸入scala的code(預設已經起了sc(Spark context),如果是spark 1.3.0會預設起了sqlContext)
- 如果是%md或%sh就是可以在裡面寫markdown或執行shell
- 比較特別是的%sql,可以將Spark sql當成真的sql來用,直接輸入sql的commend,更特別的是還會自動圖形化!
- 在使用%sql前,當然還是要將RDD註冊成Table(如果是使用spark1.3.x,需要先將RDD轉成DF,這些在預設範例裡應該都有,或是參考下圖)
先前在寫Spark分析的時候,就曾感嘆希望有個可以像ipython notebook這樣方便的工具,可以立即的與資料互動,從zeppline今年進入apache中,可以發現這樣的需求的確受到大家的關注的.而且從Spark最近的改版來看,應該也是希望能夠讓使用者更方便能透過spark來分析資料.Zeppline提供使用者很方便操作的介面,可以直接寫sql code的格式,甚至自動圖形化,可以期待Zeppline之後一定越來方便.
多謝分享!
回覆刪除有任何問題或心得歡迎一起討論:)
刪除