目前zeppelin最新版本是0.5.6,http://zeppelin.incubator.apache.org/ web
zepplin是 apache孵化器中的一個項目,可是因爲其提供的簡單,易操做的web版交互式以及可視化分析工具,也較爲受歡迎。 sql
本文就先簡單介紹 zeppelin on spark的應用。 apache
下載、安裝zeppelin 編程
zeppelin的啓動 $ZEPPELIN_HOME/bin/zeppelin-dameon.sh start , 默認端口8080,啓動成功後便可在瀏覽器訪問: json
Zeppelin在構建的時候就默認將spark構建在了項目內部,所以在啓動zeppelin後,會自動注入SparkContext, SparkSQL實例。默認狀況下zeppelin會以本地模式啓用其內部自帶的spark環境,若是你想使用本身部署的spark集羣,那麼就須要作一些簡單的配置: 後端
OK ,完成以上配置以後,就能夠從新啓動zeppelin,並建立一個新的Notebook, 來測試spark, 瀏覽器
由於zeppelin默認狀況下是提供spark上下文環境,因此在編寫spark代碼的時候,不須要加%spark, app
首先經過一個 sc.version 來查看spark版本, 注意:默認狀況下zeppelin啓動成功之後,並無將spark啓動,只有當有spark的操做請求的時候,纔會開始啓動,因此在第一次執行spark請求的時候會比較慢。 工具
若是執行結果顯示出了spark的版本信息,那麼就說明與spark後端執行引擎對接成功了。 測試
在此再額外補充一個可能出現的問題,由於我在第一次嘗試的時候就出現了,當我執行sc.version的時候報異常:
com.fasterxml.jackson.databind.JsonMappingException: Could not find creator property with name 'id' (in class org.apache.spark.rdd.RDDOperationScope)經過分析發現該異常的緣由是:jackson包版本衝突。
衝突緣由:zeppelin 0.5.6使用的jackson版本是2.5.3 ,而spark1.6使用的jackson版本是2.4.4,因此致使json解析的時候異常。
該問題的解決方法就是: 刪除zeppelin安裝文件下lib文件夾中jackson-*2.5.3.jar, 將jackson2.4.4版本的jar包複製到該文件夾下。進行替換。
重啓zeppelin,該問題便可解決。
zeppelin on spark環境已經配置完成,那麼接下來的工做就是 執行spark應用,而後使用zeppelin查看統計分析結果,固然目前用的比較方便的仍是spark sql ,下面給出基於zeppelin on spark分析結果展現。
總結: Zeppelin是一個比較讓人驚喜的發現,在發現他以前對於spark的分析結果,咱們通常都是經過命令行的方式來查詢,若是要給用戶或者別人演示結果,那就更麻煩了,要不就將就的看看後端命令行結果,要不你就寫個簡單的web ui來進行結果展現。 這樣又會帶來一些問題,每次一個新的需求模型過來都要從新編程,每次一些小的參數變更都要修改代碼。帶來了極大的不方便。 可是自從有了zeppelin,這些問題都可以很好的解決,而且不用再擔憂數據分析結果的展現問題,也爲分析統計的測試帶來很大的方便。
固然Zeppelin目前還處於孵化器階段也有不足的地方,例如一些動態表單的支持還比較少,目前僅僅有文本框和下拉框。
關於Zeppelin更多的功能還在慢慢探索中:
(1) 各類Interpreter的測試,自定義Interpreter的接入方式
(2) zeppelin豐富的展現系統
(3) zeppelin的更多使用場景挖掘等等。