Zeppelin源碼
1.概述
在大數據應用場景中,處理數據分析方面,由於開發者的水平不一樣,使用的編程語言也不盡相同,可能會涉及到R、Python、Java、Scala等,數據計算模型也估計不一樣,可能涉及的有Spark、Hive、Flink、Kylin等等。本篇博客筆者給大家介紹的內容並不是告訴大家如何去使用。在《Zeppelin使用心得》中有介紹如何使用,這裡就不多做贅述了,今天主要是給大家剖析Zeppelin的源碼模塊。
2.內容
目前Zeppelin官方已經發布版本為0.7.3,源碼帶託管在Github上,大家可以先將Zeppelin的源碼在Github上下載下來。Zeppelin的項目結構是以Maven的形式存在的,由多個Module構成,分為框架核心Module和其他Interpreter Module,源碼結構如下圖所示:
從截圖中可以看出,其實Zeppelin到目前為止,集成了很多插件,比如Beam、HBase、ES、Flink、Kylin、Pig等,這些都是平時大數據場景下常用的。
2.1 模塊分析
Zeppelin的入口是ZeppelinServer(在zeppelin-server模塊下)這個類下的Main函數,通過Jetty內嵌伺服器提供WebSocket服務和Restful服務,還基於Shiro提供了許可權認證和用戶校驗功能,都是使用Java編程語言實現的。在zeppelin-zengine模塊下,實現Notebook的持久化和檢索功能,同樣使用Java語言實現。在zeppelin-interpreter模塊下,通過調用zeppelin-zengine中的Thrift服務,來實現解釋器的交互功能。在zeppelin-web模塊下,用於腳本語言編寫以及數據的可視化,使用AngularJS前端框架實現。其他模塊詳見下表。
名稱 | 說明 | 實現語言 |
zeppelin-server | 整個系統入口,提供伺服器功能、許可權認證以及用戶校驗等功能 | Java |
zeppelin-zengine | 實現Zeppelin中Notebook的持久化和檢索功能 | Java |
zeppelin-interpreter | 執行解釋器 | Java |
zeppelin-web | 業務腳本語言編寫、數據分析界面、數據可視化與結果導出 | AngularJS |
zeppelin-display | 讓前端的AngularJS元素與後台數據進行綁定,進行數據交互 | Scala |
zeppelin-distribution | 用於存放編譯後的二進位安裝包 | |
zeppelin-examples | 示例代碼,用於測試 | |
helium-dev | 新特性,讓解釋器,存儲插件加入到Zeppelin中時,不需要重啟Zeppelin服務 | Java |
Zeppelin項目運用了許多編程語言和框架,屬於一個混合項目。
3.源碼調試
明白Zeppelin各個模塊的功能和作用後,我們可以嘗試去調試一下Zeppelin的源碼,這裡我們將Zeppelin的源碼導入到 IDEA 編輯器,然後找到ZeppelinServer啟動,如下圖所示:
然後選擇「Run "ZeppelinServer.main()"」命令即可,等待服務啟動完成,啟動成功後,會在編輯器控制台列印日誌,如下圖所示:
這裡,在啟動埠默認是8080,在ZeppelinConfiguration類下可以進行編輯,如下圖所示:
然後,我們可以到瀏覽器預覽調試結果,如下圖所示:
一般在二次開發完成Zeppelin的功能後,我們會將源代碼重新編譯打包,可以使用Maven打包命令,如下所示:
mvn clean package -Pbuild-distr -Dcheckstyle.skip=true -DskipTests
打包完成後,會在zeppelin-distribution的target目錄下生成一個二進位的軟體安裝包。
4.關係圖
這裡筆者給大家整理了Zeppelin-0.7.3的各個Module之間的關係圖,如下所示:
5.結束語
這篇博客就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或發送郵件給我,我會盡我所能為您解答,與君共勉。
(轉自博客園)
· 學IT,就來中公優就業:http://www.ujiuye.com/
· 2017年【中公教育】特別推出2017年就業促進計劃,500萬就業基金助你成為IT達人
詳情請戳http://www.ujiuye.com/zt/jycj/?wt.bd=bgz
· 什麼?海量IT學習資料白給你都不要?別想了,加群搶:584539956


※收藏|高效實用的.NET開源項目
※「js高手之路」打造通用的勻速運動框架
※J2EE走向成功路-Struts2 配置方法
※淺談Vue:從模板語法數據綁定、指令到計算屬性
※Win10系統下安裝Ubuntu16.04.3教程與設置
TAG:IT優就業 |