贡献给Apache Zeppelin(代码)

注意: Apache Zeppelin 是一个 Apache2 许可证 软件。 任何对 Zeppelin 的贡献(源代码、文档、图像、网站)意味着您同意将所有贡献以 Apache2 许可证授权。

设置

以下是一些您将需要构建和测试Zeppelin的工具。

软件配置管理 ( SCM )

由于Zeppelin使用Git作为其SCM系统,您需要在开发机器上安装git客户端。

集成开发环境 ( IDE )

您可以自由使用任何您喜欢的IDE,或者您最喜爱的命令行编辑器。

构建工具

要构建代码,请安装

  • Oracle Java 8
  • Apache Maven

获取源代码

首先,你需要Zeppelin的源代码。Zeppelin的官方位置是https://gitbox.apache.org/repos/asf/zeppelin.git

git 访问

使用 git 在您的开发机器上获取源代码。

git clone git://gitbox.apache.org/repos/asf/zeppelin.git zeppelin

您可能还想针对特定分支进行开发。例如,对于分支-0.5.6

git clone -b branch-0.5.6 git://gitbox.apache.org/repos/asf/zeppelin.git zeppelin

Apache Zeppelin 遵循 Fork & Pull 作为源代码控制工作流程。 如果你不仅想构建 Zeppelin 还想进行任何更改,那么你需要 fork Zeppelin github 镜像仓库 并提交 pull 请求。

在提交拉取请求之前,请查看贡献指南

构建

./mvnw install

跳过测试

./mvnw install -DskipTests

使用特定的spark / hadoop版本构建

./mvnw install -Dspark.version=x.x.x -Dhadoop.version=x.x.x

为了进一步

在开发模式下运行Zeppelin服务器

选项 1 - 命令行

  1. conf/zeppelin-site.xml.template复制到zeppelin-server/src/main/resources/zeppelin-site.xml,并根据需要更改此文件中的配置
  2. 运行以下命令
cd zeppelin-server
HADOOP_HOME=YOUR_HADOOP_HOME JAVA_HOME=YOUR_JAVA_HOME \
./mvnw exec:java -Dexec.mainClass="org.apache.zeppelin.server.ZeppelinServer" -Dexec.args=""

选项 2 - 守护进程脚本

注意: 确保你先运行

./mvnw clean install -DskipTests

在你的zeppelin根目录中,否则你的服务器构建将无法在本地仓库中找到所需的依赖项。

或使用守护进程脚本

bin/zeppelin-daemon start

服务器将在http://localhost:8080上运行。

选项 3 - IDE

  1. conf/zeppelin-site.xml.template复制到zeppelin-server/src/main/resources/zeppelin-site.xml,并根据需要更改此文件中的配置
  2. ZeppelinServer.java 主类

生成Thrift代码

Zeppelin代码的某些部分是由Thrift生成的。对于大多数Zeppelin的更改,你不需要担心这一点。但如果你修改了任何Thrift IDL文件(例如zeppelin-interpreter/src/main/thrift/*.thrift),那么你还需要重新生成这些文件,并将它们的更新版本作为你的补丁的一部分提交。

要重新生成代码,请安装 thrift-0.9.2,然后运行以下命令以生成 thrift 代码。

cd <zeppelin_home>/zeppelin-interpreter/src/main/thrift
./genthrift.sh

运行Selenium测试

Zeppelin 有一套使用 Selenium 的集成测试。要运行这些测试,首先构建并运行 Zeppelin,并确保 Zeppelin 在端口 8080 上运行。然后你可以使用以下命令运行测试

TEST_SELENIUM=true ./mvnw test -Dtest=[TEST_NAME] -DfailIfNoTests=false \
-pl 'zeppelin-interpreter,zeppelin-zengine,zeppelin-server'

例如,要运行ParagraphActionIT,

TEST_SELENIUM=true ./mvnw test -Dtest=ParagraphActionsIT -DfailIfNoTests=false \
-pl 'zeppelin-interpreter,zeppelin-zengine,zeppelin-server'

你需要在开发环境中安装Firefox网页浏览器。

从哪里开始

你可以找到初学者和新手的问题

保持参与

贡献者应该加入Zeppelin邮件列表。

如果您有任何问题,请在JIRA中创建一个工单。