# 從源碼編譯
原文鏈接 : [http://zeppelin.apache.org/docs/0.7.2/install/build.html](http://zeppelin.apache.org/docs/0.7.2/install/build.html)
譯文鏈接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10030615](http://www.apache.wiki/pages/viewpage.action?pageId=10030615)
貢獻者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文網](/display/~apachechina)
如果要從源代碼構建,則必須先安裝以下依賴項:
| Name | Value |
| --- | --- |
| Git | (Any Version) |
| Maven | 3.1.x or higher |
| JDK | 1.7 |
如果您還沒有安裝Git和Maven,請查看“?[構建要求”](http://zeppelin.apache.org/docs/0.7.1/install/build.html#build-requirements)部分,并按照步驟說明進行操作。
**1.?克隆Apache Zeppelin存儲庫**
```
git clone https://github.com/apache/zeppelin.git
```
**2\. 源碼編譯**
您可以使用以下maven命令構建Zeppelin:
```
mvn clean package -DskipTests [Options]?
```
?如果您不確定選項,請使用相同的命令來創建官方二進制包。
```
# 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?
```
檢查[構建配置文件](http://zeppelin.apache.org/docs/0.7.1/install/build.html#build-profiles)部分以獲取進一步的構建選項。如果您在代理服務器后面,請按照[代理設置](http://zeppelin.apache.org/docs/0.7.1/install/build.html#proxy-setting-optional)部分中的說明進行操作。
如果您對貢獻感興趣,請檢查[貢獻Apache Zeppelin(代碼)](http://zeppelin.apache.org/docs/0.7.1/development/howtocontribute.html)和[貢獻Apache Zeppelin(網站)](http://zeppelin.apache.org/docs/development/contributewebsite.html)。
## 構建配置文件
Spark 解釋器
要使用特定的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`?(可選的)**
啟用對本地模式的YARN支持
```
Spark v1.5.0或更高版本不支持YARN用于本地模式。設置SPARK_HOME代替?
```
**?`-Ppyspark`?(可選的)**
啟用[PySpark](http://spark.apache.org/docs/latest/api/python/)支持本地模式。
**`-Pr`?(可選的)**
使用[SparkR](https://spark.apache.org/docs/latest/sparkr.html)集成啟用[R](https://www.r-project.org/)支持。
**`-Psparkr`?(可選的)**
另一個[R](https://www.r-project.org/)支持與[SparkR](https://spark.apache.org/docs/latest/sparkr.html)集成以及本地模式支持。
**`-Pvendor-repo`?(可選的)**
啟用第三方供應商存儲庫(cloudera)
**`-Pmapr[version]`?(可選的)**
對于MapR Hadoop Distribution,這些配置文件將處理Hadoop版本。至于MAPR允許安裝不同版本星火的,則應該通過添加一個Spark的個人資料(指定星火的版本安裝在群集上`-Pspark-1.6`,`-Pspark-2.0`根據需要,等等)。可以在[http://doc.mapr.com的每個版本的MapR找到正確的Maven工件](http://doc.mapr.com的每個版本的MapR找到正確的Maven工件)
可用的配置文件是
```
-Pmapr3
-Pmapr40
-Pmapr41
-Pmapr50
-Pmapr51?
```
-Pexamples(可選)
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 解釋器
```
mvn clean package -Dignite.version=1.9.0 -DskipTests
```
?Scalding 解釋器
```
mvn clean package -Pscalding -DskipTests
```
## 構建要求
### 安裝要求
如果您沒有準備好要求,請安裝它。(安裝方法可能會根據您的環境而有所不同,例如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 --version`
- 確保maven正在運行版本3.1.x或更高版本`mvn -version`?- 配置maven使用比平常更多的內存`export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=1024m"`
## 代理設置(可選)
如果您在代理服務器后面,您需要配置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://
```
要清理,`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身份驗證代理](http://cntlm.sourceforge.net/)。- 用`localhost:3128`標準圖案替換`[http://user:pwd@host:port](http://user:pwd@hostport)`。
## 包
要打包包含壓縮歸檔的最終發行版,請運行:
```
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`如果您希望構建特定的火花版本,或者省略支持,可以調整配置文件`yarn`。
存檔在目錄下_`zeppelin-distribution/target`_生成
## 運行端到端測試
Zeppelin提供了一套端到端驗收測試,運行headless?selenium瀏覽器
```
# 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?
```
[Analytics](https://github.com/igrigorik/ga-beacon)
- 快速入門
- 什么是Apache Zeppelin?
- 安裝
- 配置
- 探索Apache Zeppelin UI
- 教程
- 動態表單
- 發表你的段落
- 自定義Zeppelin主頁
- 升級Zeppelin版本
- 從源碼編譯
- 使用Flink和Spark Clusters安裝Zeppelin教程
- 解釋器
- 概述
- 解釋器安裝
- 解釋器依賴管理
- 解釋器的模擬用戶
- 解釋員執行Hook(實驗)
- Alluxio 解釋器
- Beam 解釋器
- BigQuery 解釋器
- Cassandra CQL 解釋器
- Elasticsearch 解釋器
- Flink 解釋器
- Geode/Gemfire OQL 解釋器
- HBase Shell 解釋器
- HDFS文件系統 解釋器
- Hive 解釋器
- Ignite 解釋器
- JDBC通用 解釋器
- Kylin 解釋器
- Lens 解釋器
- Livy 解釋器
- Markdown 解釋器
- Pig 解釋器
- PostgreSQL, HAWQ 解釋器
- Python 2&3解釋器
- R 解釋器
- Scalding 解釋器
- Scio 解釋器
- Shell 解釋器
- Spark 解釋器
- 系統顯示
- 系統基本顯示
- 后端Angular API
- 前端Angular API
- 更多
- 筆記本存儲
- REST API
- 解釋器 API
- 筆記本 API
- 筆記本資源 API
- 配置 API
- 憑據 API
- Helium API
- Security ( 安全 )
- Shiro 授權
- 筆記本 授權
- 數據源 授權
- Helium 授權
- Advanced ( 高級 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虛擬機上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 貢獻 )
- Writing a New Interpreter ( 寫一個新的解釋器 )
- Writing a new Visualization (Experimental) ( 編寫新的可視化(實驗) )
- Writing a new Application (Experimental) ( 寫一個新的應用程序( 實驗 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 貢獻( 代碼 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 貢獻(website) )