zeppelin源码分析(1)——编译、调试和maven modules分析

本文详细介绍了Apache Zeppelin的源码编译过程,包括所需的环境和编译命令。接着分析了zeppelin-distribution目录结构,如bin、conf、interpreter和notebook。此外,还讨论了zeppelin的源码调试方法,以及项目模块组成和它们之间的依赖关系。
摘要由CSDN通过智能技术生成

Zeppelin,于2016-5-18日从Apache孵化器项目毕业成为Apache顶级项目,采用Java(主要)+Scala+R+PythonR+Bash+JS混合开发,采用maven作为build工具。涉及的主要技术stack如下:

1)      前台:AngularJS、Node.JS、WebSocket、Grunt、Bower、Highlight.js、BootStrap3js

2)      后台:Jetty(embedding)、ThriftShiro(权限)、Apache common-exec、Jersey REST API。

具体技术占比:


zeppelin本质上是一个web应用程序,它以独立的jvm进程的方式来启动Interpreter(解释器),交互式(repl)执行各种语言的代码片段,并将结果以html代码片段的形式返回给前端UI。

1     Zeppelin的编译

编译环境:Oracle JDK7.x、maven3.x+、Node.js(npm)

Git源码地址:https://github.com/apache/zeppelin.git(注意不要再从如下旧的git地址更新了https://github.com/apache/incubator-zeppelin.git

以下将${ZEPPELIN_HOME}指代git clone之后源码的根目录。使用如下maven命令编译并生成zeppelin的发布包:

mvn  install -Pbuild-distr -Pspark-1.6 -Dspark.version=1.6.2 -Phadoop-2.7 -Dhadoop.version=2.7.2  [-Pr|-Psparkr] -Ppyspark -Dmaven.findbugs.enable=false -Drat.skip=true -Dcheckstyle.skip=true -Denforcer.skip=true -Dcobertura.skip=true -DskipTests -X

解释:

1)      执行install是为了将artifact安装到maven本地仓库,便于之后import到IDE进行调试。

2)      -Pbuild-distr,表示启用build-distr这个maven profile是为了在zeppelin-distribution这个module中生成可分发包。

3)      [-Pr|-Psparkr]需要注意,表示这2个profile只能启用一个,这2个profile编译出来的Interpreter会bind到相同的名字%r,造成冲突(参见zeppelin的mailinglist)。–Pr,表示启用r这个mavenprofile,会将${ZEPPELIN_HOME}/r作为一个module参与编译,编译完成得到sparkR Interpreter。运行zeppelin自带的R Tutorial这个Note,需要改Interpreter。-Pspark-1.6这个profile并不会使得sparkr这个Interpreter被编译打包,因为该Interpreter的编译在${ZEPPELIN_HOME}/zep

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值