1. 前置條件html
None root accountjava
Apache Mavennode
Java 1.7git
2. 源碼github
https://github.com/apache/incubator-zeppelinweb
git clone https://github.com/apache/incubator-zeppelinsql
3. 編譯apache
本地模式:mvn clean package -DskipTestsnpm
集羣模式: mvn clean package -Pspark-1.4 -Dspark.version=1.4.1 -Dhadoop.version=2.3.0-cdh5.1.0 -Phadoop-2.3 -DskipTestsjson
在安裝過程當中 可能會出現各類問題,可是通常都是網絡問題致使,但可從新執行下編譯命令,若是編譯出現oom,增長以下命令:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m
可是在編譯zeppelin-web模塊 會遇到各類詭異的問題,web模塊使用了node, grunt, bower工具
修改zeppelin-web項目的pom.xml
[html] view plaincopy
<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>
有網友推薦我這樣作,但感受沒啥效果
nodeVersion & npmVersion 版本分別改爲v0.12.4,2.10.1,但我感受用處不大
[html] view plaincopy
<configuration>
<nodeVersion>v0.12.4</nodeVersion>
<npmVersion>2.10.1</npmVersion>
</configuration>
安裝順序:
1. 首先須要提早安裝好npm和node。 sudo apt-get install npm和npm install -g node。
2. 進入zeppelin-web目錄下,執行 npm install。它會根據package.json的描述安裝一些grunt的組件,安裝bower,而後再目錄下生產一個node_modules目錄。
3. 執行 bower -–alow-root install,會根據bower.json安裝前段庫依賴,有點相似於java的mvn。見http://bower.io/
4. 執行 grunt –force,會根據Gruntfile.js整理web文件。
5. 最好執行 mvn install -DskipTests,把web項目打包,在target目錄下會生成war。
mvn可能會出錯,由於web.xml不在默認路徑下,須要在pom.xml裏添加:
[html] view plaincopy
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>app\WEB-INF\web.xml</webXml>
</configuration>
</plugin>
4. 配置
進入zeppelin_home/conf/
將 zeppelin-env.sh.template 修改成 zeppelin-env.sh
將 zeppelin-site.xml.template 修改成 zeppelin-site.xml
編譯zeppelin-site.xml文件,
zeppelin.server.port 端口改爲8089
[html] view plaincopy
<property>
<name>zeppelin.server.port</name>
<value>8089</value>
<description>Server port. port+1 is used for web socket.</description>
</property>
我如今使用僞分佈式模式,因此就不修改 zeppelin-env.sh文件中 MASTER,使用默認配置,即爲local模式
若是要是使用spark standalone 分佈式模式,那就改爲以下
export MASTER=spark://master:7077
5. 啓動
在zeppelin_home目錄下執行以下命令:
bin/zeppelin-daemon.sh start
Pid dir doesn't exist, create /home/cluster/apps/incubator-zeppelin-0.5.0/run
Zeppelin start [ OK ]
啓動成功~
能夠在localhost:8089 訪問到zepplin主頁了。若是沒有出主頁,能夠看瀏覽器console,是缺乏了什麼文件,八成是web項目打包的時候漏了,極可能是bower和grunt命令執行的時候缺乏依賴出錯的。
主界面:
zeppelin home目錄下會看到一個notebook文件夾,按notebook的名字命名區分了多個子目錄。目錄下是一個note.json文件,記錄了每一個notebook裏輸入的代碼和執行結果,啓動的時候會加載起來。
6.測試
zeppelin爲spark作了更好的支持,好比默認是scala環境,默認sc已經建立好,即spark local可跑,默認spark sql有可視化效果。
經過標識%md, %sh, %sql, %spark, %hive, %tajo來區分要執行的是什麼,默認不寫的話,執行環境是scala。在 http://127.0.0.1:8089/#/interpreter 頁面裏有詳細的參數說明。
簡單測試下 %sh,scala,%spark
好吧 ,先搞到這吧,稍後會有一篇 關於詳細使用zeppelin 以及 zeppelin on yarn方式編譯
尊重原創,拒絕轉載