1.概述
在編寫 Flink,Spark,Hive 等相關作業時,要是能快速的將我們所編寫的作業能可視化在我們面前,是件讓人興奮的時,如果能帶上趨勢功能就更好了。今天,給大家介紹這么一款工具。它就能滿足上述要求,在使用了一段時間之后,這里給大家分享以下使用心得。
2.How to do
首先,我們來了解一下這款工具的背景及用途。Zeppelin 目前已托管於 Apache 基金會,但並未列為頂級項目,可以在其公布的 官網訪問。它提供了一個非常友好的 WebUI 界面,操作相關指令。它可以用於做數據分析和可視化。其后面可以接入不同的數據處理引擎。包括 Flink,Spark,Hive 等。支持原生的 Scala,Shell,Markdown 等。
2.1 Install
對於 Zeppelin 而言,並不依賴 Hadoop 集群環境,我們可以部署到單獨的節點上進行使用。首先我們使用以下地址獲取安裝包:
這里,有2種選擇,其一,可以下載原文件,自行編譯安裝。其二,直接下載二進制文件進行安裝。這里,為了方便,筆者直接使用二進制文件進行安裝使用。這里有些參數需要進行配置,為了保證系統正常啟動,確保的 zeppelin.server.port 屬性的端口不被占用,默認是8080,其他屬性大家可按需配置即可。[配置鏈接]
2.2 Start/Stop
在完成上述步驟后,啟動對應的進程。定位到 Zeppelin 安裝目錄的bin文件夾下,使用以下命令啟動進程:
./zeppelin-daemon.sh start
若需要停止,可以使用以下命令停止進程:
./zeppelin-daemon.sh stop
另外,通過閱讀 zeppelin-daemon.sh 腳本的內容,可以發現,我們還可以使用相關重啟,查看狀態等命令。內容如下:
case "${1}" in start) start ;; stop) stop ;; reload) stop start ;; restart) stop start ;; status) find_zeppelin_process ;; *) echo ${USAGE}
3.How to use
在啟動相關進程后,可以使用以下地址在瀏覽器中訪問:
http://<Your_<IP/Host>:Port>
啟動之后的界面如下所示:
該界面羅列出插件綁定項。如圖中的 spark,md,sh 等。那我如何使用這些來完成一些工作。在使用一些數據引擎時,如 Flink,Spark,Hive 等,是需要配置對應的連接信息的。在 Interpreter 欄處進行配置。這里給大家列舉一些配置示例:
3.1 Flink
可以找到 Flink 的配置項,如下圖所示:
然后指定對應的 IP 和地址即可。
3.2 Hive
這里 Hive 配置需要指向其 Thrift 服務地址,如下圖所示:
另外,其他的插件,如 Spark,Kylin,phoenix等配置類似,配置完成后,記得點擊 “restart” 按鈕。
3.3 Use md and sh
下面,我們可以創建一個 Notebook 來使用,我們拿最簡單的 Shell 和 Markdown 來演示,如下圖所示:
3.4 SQL
當然,我們的目的並不是僅僅使用 Shell 和 Markdown,我們需要能夠使用 SQL 來獲取我們想要的結果。
3.4.1 Spark SQL
下面,我們使用 Spark SQL 去獲取想要的結果。如下圖所示:
這里,可以將結果以不同的形式來可視化,量化,趨勢,一目了然。
3.4.2 Hive SQL
另外,可以使用動態格式來查詢分區數據,以"${partition_col=20160101,20160102|20160103|20160104|20160105|20160106}"的格式進行表示。如下圖所示:
3.5 Video Guide
另外,官方也給出了一個快速指導的入門視頻,觀看地址:[入口]
4.總結
在使用的過程當中,有些地方需要注意,必須在編寫 Hive SQL 時,%hql 需要替換為 %hive.sql 的格式;另外,在運行 Scala 代碼時,如果出現以下異常,如下圖所示:
解決方案,在 zeppelin-env.sh 文件中添加以下內容:
export ZEPPELIN_MEM=-Xmx4g
該 BUG 在 0.5.6 版本得到修復,參考碼:[ZEPPELIN-305]
5.結束語
這篇博客就和大家分享到這里,如果大家在研究學習的過程當中有什么問題,可以加群進行討論或發送郵件給我,我會盡我所能為您解答,與君共勉!