# 从源码编译
原文链接 : [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) )