Spark交互式分析平臺Apache Zeppelin的安裝

Zeppelin介紹

Apache Zeppelin提供了web版的類似ipython的notebook,用于做數(shù)據(jù)分析和可視化。背后可以接入不同的數(shù)據(jù)處理引擎,包括spark, hive, tajo等,原生支持scala, java, shell, markdown等。它的整體展現(xiàn)和使用形式和Databricks Cloud是一樣的,就是來自于當時的demo。

Zeppelin可實現(xiàn)你所需要的:

  • 數(shù)據(jù)采集
  • 數(shù)據(jù)發(fā)現(xiàn)
  • 數(shù)據(jù)分析
  • 數(shù)據(jù)可視化和協(xié)作

支持多種語言,默認是scala(背后是spark shell),SparkSQL, Markdown 和 Shell。


甚至可以添加自己的語言支持。如何寫一個zeppelin解釋器

Zeppelin特性

Apache Spark 集成

Zeppelin 提供了內置的 Apache Spark 集成。你不需要單獨構建一個模塊、插件或者庫。
Zeppelin的Spark集成提供了:

  • 自動引入SparkContext 和 SQLContext
  • 從本地文件系統(tǒng)或maven庫載入運行時依賴的jar包。更多關于依賴載入器
  • 可取消job 和 展示job進度

數(shù)據(jù)可視化

一些基本的圖表已經(jīng)包含在Zeppelin中。可視化并不只限于SparkSQL查詢,后端的任何語言的輸出都可以被識別并可視化。
Bank

動態(tài)表格
Zeppelin 可以在你的筆記本中動態(tài)地創(chuàng)建一些輸入格式。

協(xié)作
Notebook 的 URL 可以在協(xié)作者間分享。 Zeppelin 然后可以實時廣播任何變化,就像在 Google docs 中一樣。

發(fā)布
Zeppelin提供了一個URL用來僅僅展示結果,那個頁面不包括Zeppelin的菜單和按鈕。這樣,你可以輕易地將其作為一個iframe集成到你的網(wǎng)站。

Zeppelin的安裝部署

由于Zeppelin目前不提供binary安裝包,所以這里Zeppelin的安裝需要自己編譯。
這里可以參考Zeppelin GithubInstall Zeppelin

準備工作

需要
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,不然一些工具的下載會受到影響,可以從maven官網(wǎng)下載二進制壓縮包,直接使用。
這里還需要node命令,apt-get安裝npm時候會自動安裝nodejs命令,這里只需要建立一個鏈接就可以:sudo ln -s /usr/bin/nodejs /usr/bin/node

zeppelin-web項目的安裝配置

我在之前對zeppelin整個項目進行maven部署的時候總是出現(xiàn)zeppelin-web項目的失敗,不得其解,參照網(wǎng)上的方法,對zeppelin-web項目進行單獨的安裝配置。
這里每一步都很關鍵,我在這里的配置安裝折騰了很多次,最終才能正常的完成安裝,下面一一道來。

刪除zeppelin-web項目的pom.xml下面給出的內容,換做手動安裝:

<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>

手動安裝步驟:
1. 安裝好npm和node
2. 進入zeppelin-web目錄下,執(zhí)行npm install。它會根據(jù)package.json的描述安裝一些grunt的組件,安裝bower,然后再目錄下生產一個node_modules目錄。
3. 執(zhí)行bower –-allow-root install,會根據(jù)bower.json安裝前段庫依賴,有點類似于java的mvn。
4. 執(zhí)行grunt --no-color –-force,會根據(jù)Gruntfile.js整理web文件。
第3、4步要注意,本來給定的bower和grunt文件中使用的"node/node"命令,因為使用maven自動安裝時,會在當前目錄下生成node目錄,其中包含node命令。我們之前已經(jīng)安裝了nodejs命令,并新鏈接了命令node,所以這里需要將其修改為"node"。
5. 執(zhí)行mvn install -DskipTests,把web項目打包,在target目錄下會生成war
pom.xml在生成war包的時候,要參照dist\WEB-INF\web.xml文件,所以在執(zhí)行該步驟之前,要明確zeppelin-web目錄下由dist目錄,才能最終生成正確的war包。

其他zeppelin項目的編譯

其他項目的編譯依照正常程序進行就可以,安裝文檔:http://zeppelin.incubator.apache.org/docs/install/install.html

根據(jù)自己的方式進行編譯:
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ù)自己的要求進行配置。

啟動、關閉

啟動、關閉Zeppelin進程命令為:
bin/zeppelin-daemon.sh start
bin/zeppelin-daemon.sh stop

參考資料

Apache Zeppelin安裝及介紹

轉載請注明作者Jason Ding及其出處
GitCafe博客主頁(http://jasonding1354.gitcafe.io/)
Github博客主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://m.itdecent.cn/users/2bd9b48f6ea8/latest_articles)
Google搜索jasonding1354進入我的博客主頁

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容