Zeppelin-源碼編譯

Zeppelin源碼編譯

(英:http://zeppelin.apache.org/docs/snapshot/install/build.htmlhtml

編譯Docker源碼,須要預先安裝下面的依賴軟件:node

Name Value
Git (Any Version)
Maven 3.1.x or higher
JDK 1.7

1、編譯步驟

若是尚未安裝Git和Maven, 參考後面的編譯要求一節安裝。而後按照下面的步驟進行:python

1. 複製源碼

git clone https://github.com/apache/zeppelin.git

2. 編譯源碼

執行下面的maven命令進行編譯:git

mvn clean package -DskipTests [Options]

有的版本編譯不成功,改用install就能夠:mvn install -Pbuild-distr -Drat.skip -DskipTestsgithub

參數「-Drat.skip -DskipTests」主要是由於rat和一些測試暫時編譯通不過。web

>>使用代理設置

若是使用代理,加上下面的選項:apache

-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<port> -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<port>

或者使用下面方法設置參數(sock5代理-ssh tunnel):npm

set MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

若是使用http代理,改成:api

set MAVEN_OPTS="-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=$PORT"

使用https帶來的話,將http改成https便可。bash

若是不肯定使用的參數,使用下面的參數建立官方版的安裝包:

# update all pom.xml to use scala 2.11
./dev/change_scala_version.sh 2.11
# build zeppelin with all interpreters and include latest version of Apache spark support for local mode.
mvn clean package -DskipTests -Pspark-2.0 -Phadoop-2.4 -Pyarn -Ppyspark -Psparkr -Pr -Pscala-2.11

3. 啓動Zeppelin

編譯成功後,直接啓動:

./bin/zeppelin-daemon.sh start

更多編譯選項查看後面的內容。若是使用網絡代理, 按照 代理設置 的說明進行。

若是願意爲本項目做出貢獻,請參考:Contributing to Apache Zeppelin (Code)Contributing to Apache Zeppelin (Website).

2、編譯選項

Spark Interpreter

編譯支持特定版本的Spark、Hadoop和特行,經過指定參數實現。指定下面的參數:

-Pspark-[version]

指定Spark的特定版本,可用的設置參數包括:

-Pspark-2.1
-Pspark-2.0
-Pspark-1.6
-Pspark-1.5
-Pspark-1.4
-Pcassandra-spark-1.5
-Pcassandra-spark-1.4
-Pcassandra-spark-1.3
-Pcassandra-spark-1.2
-Pcassandra-spark-1.1

還能夠指定小版本號,如 -Dspark.version=x.x.x

-Phadoop-[version]

指定hadoop的祝版本號,可用參數包括:

-Phadoop-0.23
-Phadoop-1
-Phadoop-2.2
-Phadoop-2.3
-Phadoop-2.4
-Phadoop-2.6
-Phadoop-2.7

小版本號指定 -Dhadoop.version=x.x.x

-Pscala-[version] (optional)

設置 scala 版本 (缺省 2.10) ,可用參數包括:

-Pscala-2.10
-Pscala-2.11

-Pyarn (optional)

開啓 YARN 的 local mode支持

YARN for local mode is not supported for Spark v1.5.0 or higher. Set SPARK_HOME instead.

-Ppyspark (optional)

開啓 PySpark 支持 local mode.

-Pr (optional)

開啓 R 支持,整合 SparkR

-Psparkr (optional)

另外一個 R 支持,經過SparkR 整合,支持local mode。

-Pvendor-repo (optional)

開啓第三方軟件庫 (cloudera)

-Pmapr[version] (optional)

對於 MapR Hadoop 分發版, 這些參數將處理 Hadoop 版本。 像MapR 容許不一樣的Spark安裝,你能夠指定須要安裝那一個Spark版本(-Pspark-1.6, -Pspark-2.0, etc.) 。 正確的Maven artifacts 對應的 MapR 在 http://doc.mapr.com。

可用參數包括:

-Pmapr3
-Pmapr40
-Pmapr41
-Pmapr50
-Pmapr51

-Pexamples (optional)

編譯zeppelin-examples 目錄下的例子。

編譯命令示例

下面是一些編譯指令的示例:

# build with spark-2.1, scala-2.11
./dev/change_scala_version.sh 2.11
mvn clean package -Pspark-2.1 -Phadoop-2.4 -Pyarn -Ppyspark -Psparkr -Pscala-2.11 -DskipTests

# build with spark-2.0, scala-2.11
./dev/change_scala_version.sh 2.11
mvn clean package -Pspark-2.0 -Phadoop-2.4 -Pyarn -Ppyspark -Psparkr -Pscala-2.11 -DskipTests

# build with spark-1.6, scala-2.10
mvn clean package -Pspark-1.6 -Phadoop-2.4 -Pyarn -Ppyspark -Psparkr -DskipTests

# spark-cassandra integration
mvn clean package -Pcassandra-spark-1.5 -Dhadoop.version=2.6.0 -Phadoop-2.6 -DskipTests -DskipTests

# with CDH
mvn clean package -Pspark-1.5 -Dhadoop.version=2.6.0-cdh5.5.0 -Phadoop-2.6 -Pvendor-repo -DskipTests

# with MapR
mvn clean package -Pspark-1.5 -Pmapr50 -DskipTests

Ignite Interpreter

mvn clean package -Dignite.version=1.8.0 -DskipTests

Scalding Interpreter

mvn clean package -Pscalding -DskipTests

3、Build 要求

安裝依賴軟件

若是相關依賴軟件尚未的話,就先安裝一下。(不一樣的操做系統會有不一樣,下面以 Ubuntu 爲例)

sudo apt-get update
sudo apt-get install git
sudo apt-get install openjdk-7-jdk
sudo apt-get install npm
sudo apt-get install libfontconfig

安裝 maven

wget http://www.eu.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
sudo tar -zxf apache-maven-3.3.9-bin.tar.gz -C /usr/local/
sudo ln -s /usr/local/apache-maven-3.3.9/bin/mvn /usr/local/bin/mvn

注意:

- 確保node安裝,測試 node --version

- 確保 maven 版本3.1.x 或以上,測試 mvn -version

- 配置maven 使用更多的內存 export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=1024m"

4、代理設置(optional)

若是你的網絡在代理以後, 你須要配置maven和npm使用代理穿越訪問服務。

首先,配置 maven。修改 ~/.m2/settings.xml.

<settings>
  <proxies>
    <proxy>
      <id>proxy-http</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>localhost</host>
      <port>3128</port>
      <!-- <username>usr</username>
      <password>pwd</password> -->
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
    <proxy>
      <id>proxy-https</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>localhost</host>
      <port>3128</port>
      <!-- <username>usr</username>
      <password>pwd</password> -->
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

而後, 配置 npm:

npm config set proxy http://localhost:3128
npm config set https-proxy http://localhost:3128
npm config set registry "http://registry.npmjs.org/"
npm config set strict-ssl false

配置 git,一樣辦法:

git config --global http.proxy http://localhost:3128
git config --global https.proxy http://localhost:3128
git config --global url."http://".insteadOf git://

設置bower proxy,打開/zeppelin-web下的.bowerrc文件,加入下面的內容:

"proxy" : "http://localhost:9999",
  "https-proxy" : "http://localhost:9999",
  "strict-ssl": false

清除, 設置 active false 在Maven settings.xml 中,並運行命令:

npm config rm proxy
npm config rm https-proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset url."http://".insteadOf

注意:

- 若是在 NTLM 代理後使用 Cntlm Authentication Proxy.

- 替換 localhost:3128 ,使用標準的模式 http://user:pwd@host:port.

5、打包-Package

對最終的分發版打包,包括壓縮文檔:

mvn clean package -Pbuild-distr

針對特定參數構建分發版,運行:

mvn clean package -Pbuild-distr -Pspark-1.5 -Phadoop-2.4 -Pyarn -Ppyspark

這裏的 -Pspark-1.5 -Phadoop-2.4 -Pyarn -Ppyspark can 能夠根據Spark的版本予以調整。產生出的包在 zeppelin-distribution/target目錄下。

運行端到端測試:

Zeppelin 帶有一系列的測試,驅動 headless selenium browser。

# assumes zeppelin-server running on localhost:8080 (use -Durl=.. to override)
mvn verify

# or take care of starting/stoping zeppelin-server from packaged zeppelin-distribuion/target
mvn verify -P using-packaged-distr
相關文章
相關標籤/搜索