Zeppelin介紹
Apache Zeppelin提供了web版的類似ipython的notebook抄沮,用于做數(shù)據(jù)分析和可視化榛鼎。背后可以接入不同的數(shù)據(jù)處理引擎辙诞,包括spark, hive, tajo等惧浴,原生支持scala, java, shell, markdown等瑟蜈。它的整體展現(xiàn)和使用形式和Databricks Cloud是一樣的塞俱,就是來自于當(dāng)時(shí)的demo姐帚。
Zeppelin可實(shí)現(xiàn)你所需要的:
- 數(shù)據(jù)采集
- 數(shù)據(jù)發(fā)現(xiàn)
- 數(shù)據(jù)分析
- 數(shù)據(jù)可視化和協(xié)作
支持多種語言,默認(rèn)是scala(背后是spark shell)障涯,SparkSQL, Markdown 和 Shell罐旗。
甚至可以添加自己的語言支持。如何寫一個(gè)zeppelin解釋器
Zeppelin特性
Apache Spark 集成
Zeppelin 提供了內(nèi)置的 Apache Spark 集成唯蝶。你不需要單獨(dú)構(gòu)建一個(gè)模塊九秀、插件或者庫。
Zeppelin的Spark集成提供了:
- 自動(dòng)引入SparkContext 和 SQLContext
- 從本地文件系統(tǒng)或maven庫載入運(yùn)行時(shí)依賴的jar包粘我。更多關(guān)于依賴載入器
- 可取消job 和 展示job進(jìn)度
數(shù)據(jù)可視化
一些基本的圖表已經(jīng)包含在Zeppelin中鼓蜒。可視化并不只限于SparkSQL查詢,后端的任何語言的輸出都可以被識(shí)別并可視化友酱。
Bank
動(dòng)態(tài)表格
Zeppelin 可以在你的筆記本中動(dòng)態(tài)地創(chuàng)建一些輸入格式晴音。
協(xié)作
Notebook 的 URL 可以在協(xié)作者間分享。 Zeppelin 然后可以實(shí)時(shí)廣播任何變化缔杉,就像在 Google docs 中一樣锤躁。
發(fā)布
Zeppelin提供了一個(gè)URL用來僅僅展示結(jié)果,那個(gè)頁面不包括Zeppelin的菜單和按鈕或详。這樣系羞,你可以輕易地將其作為一個(gè)iframe集成到你的網(wǎng)站。
Zeppelin的安裝部署
由于Zeppelin目前不提供binary安裝包霸琴,所以這里Zeppelin的安裝需要自己編譯椒振。
這里可以參考Zeppelin Github和Install Zeppelin
準(zhǔn)備工作
需要
Java 1.7
Tested on Mac OSX, Ubuntu 14.X, CentOS 6.X
Maven (if you want to build from the source code)
Node.js Package Manager
在Ubuntu環(huán)境下可以這樣安裝:
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo apt-get install git
sudo apt-get install maven
sudo apt-get install npm
注意:這里的maven工具如果不是最新的源的話,可能只是maven2梧乘,zeppelin的編譯需要maven3澎迎,不然一些工具的下載會(huì)受到影響,可以從maven官網(wǎng)下載二進(jìn)制壓縮包选调,直接使用夹供。
這里還需要node命令,apt-get安裝npm時(shí)候會(huì)自動(dòng)安裝nodejs命令仁堪,這里只需要建立一個(gè)鏈接就可以:sudo ln -s /usr/bin/nodejs /usr/bin/node
zeppelin-web項(xiàng)目的安裝配置
我在之前對(duì)zeppelin整個(gè)項(xiàng)目進(jìn)行maven部署的時(shí)候總是出現(xiàn)zeppelin-web項(xiàng)目的失敗哮洽,不得其解,參照網(wǎng)上的方法弦聂,對(duì)zeppelin-web項(xiàng)目進(jìn)行單獨(dú)的安裝配置鸟辅。
這里每一步都很關(guān)鍵,我在這里的配置安裝折騰了很多次莺葫,最終才能正常的完成安裝匪凉,下面一一道來。
刪除zeppelin-web項(xiàng)目的pom.xml下面給出的內(nèi)容捺檬,換做手動(dòng)安裝:
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>0.0.23</version>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>v0.10.18</nodeVersion>
<npmVersion>1.3.8</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
</execution>
<execution>
<id>bower install</id>
<goals>
<goal>bower</goal>
</goals>
<configuration>
<arguments>--allow-root install</arguments>
</configuration>
</execution>
<execution>
<id>grunt build</id>
<goals>
<goal>grunt</goal>
</goals>
<configuration>
<arguments>--no-color --force</arguments>
</configuration>
</execution>
</executions>
</plugin>
手動(dòng)安裝步驟:
1. 安裝好npm和node
2. 進(jìn)入zeppelin-web目錄下洒缀,執(zhí)行npm install
。它會(huì)根據(jù)package.json的描述安裝一些grunt的組件欺冀,安裝bower,然后再目錄下生產(chǎn)一個(gè)node_modules目錄萨脑。
3. 執(zhí)行bower –-allow-root install
隐轩,會(huì)根據(jù)bower.json安裝前段庫依賴,有點(diǎn)類似于java的mvn渤早。
4. 執(zhí)行grunt --no-color –-force
职车,會(huì)根據(jù)Gruntfile.js整理web文件。
第3、4步要注意悴灵,本來給定的bower和grunt文件中使用的"node/node"
命令扛芽,因?yàn)槭褂胢aven自動(dòng)安裝時(shí),會(huì)在當(dāng)前目錄下生成node目錄积瞒,其中包含node命令川尖。我們之前已經(jīng)安裝了nodejs命令,并新鏈接了命令node茫孔,所以這里需要將其修改為"node"
叮喳。
5. 執(zhí)行mvn install -DskipTests
,把web項(xiàng)目打包缰贝,在target目錄下會(huì)生成war
pom.xml在生成war包的時(shí)候馍悟,要參照dist\WEB-INF\web.xml
文件,所以在執(zhí)行該步驟之前剩晴,要明確zeppelin-web目錄下由dist目錄锣咒,才能最終生成正確的war包。
其他zeppelin項(xiàng)目的編譯
其他項(xiàng)目的編譯依照正常程序進(jìn)行就可以赞弥,安裝文檔:http://zeppelin.incubator.apache.org/docs/install/install.html
根據(jù)自己的方式進(jìn)行編譯:
Local mode:
mvn install -DskipTests
Cluster mode:
mvn install -DskipTests -Dspark.version=1.1.0 -Dhadoop.version=2.2.0
配置
配置文件為環(huán)境變量文件(conf/zeppelin-env.sh)和Java屬性文件(conf/zeppelin-site.xml)毅整。根據(jù)自己的要求進(jìn)行配置。
啟動(dòng)嗤攻、關(guān)閉
啟動(dòng)毛嫉、關(guān)閉Zeppelin進(jìn)程命令為:
bin/zeppelin-daemon.sh start
bin/zeppelin-daemon.sh stop
參考資料
轉(zhuǎn)載請(qǐng)注明作者Jason Ding及其出處
GitCafe博客主頁(http://jasonding1354.gitcafe.io/)
Github博客主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡(jiǎn)書主頁(http://www.reibang.com/users/2bd9b48f6ea8/latest_articles)
Google搜索jasonding1354進(jìn)入我的博客主頁