StreamSets实战之路(三)-环境篇- StreamSet源码查看与编译

主要介绍StreamSets DC和StreamSets DC Edge怎么看源码和从源码编译生成安装包。

1.StreamSets DC源码查看与编译

StreamSets DC源码clone目前只能在linux和Mac操作系统上进行,在Window有出现很多问题。在这只介绍在linux上进行查看源码和编译源码。

1.1源码编译环境准备

Git 1.9+

Oracle JDK 8

Maven 3.3.9+

Docker 1.10+ (做集成测试的时候是需要的,编译时不测试不需要.)

Node 0.10.32+1

npm

bower 1.8.2 (macOS, npm -g install bower : Linux, sudo npm -g install bower)

grunt-cli (macOS, npm -g install grunt-cli : Linux, sudo npm -g install grunt-cli)

md5sum (macOS, brew install md5sha1sum)

 

若是只想查看源码,只需要安装git、jdk8、maven这个。开发工具这里我们选用IDEA。

1.2 查看源码

(1)克隆源代码

git clone https://github.com/streamsets/datacollector.git

网速慢的可能要等一会。下载完后,您可以通过:

git branch -a 或 git tag

查看现有分支和版本,您可以指定某个分支或版本查看,通过:

git checkout <version>

切换分支或版本。

(2)使用IDEA查看源码

首次打开,可能要很慢,因为打开的时候,会自动去下载很多依赖包,等待下载完后,你会看到:

 

这里介绍几个主要的模块:

basic-lib: 是streamsets DC的基础组件包(包含origin、processor、destination等),streamsets DC 中一些常见的组件都在这里,在核心版本和完整版本中这个基础组件包都有;

datacollector-ui:是streamsets DC的前端Web-ui模块,主要采用angular.js框架;

common*和container:是streamsets DC很多模块的依赖包;

cdh*:是cdh相关生态的组件;

hdp*:是cdh相关生态的组件;

tensorflow-lib:是深度学习框架组件;

spark*:与spark streaming 集群流式计算;

jdbc-lib:jdbc相关组件;

kafka、ES、redis、hadoop、…

1.3编译源码

建议先进行一遍,这样会把一些相关的依赖给下载下来:

mvn clean install –DskipTests

用于这个工程包含的模块比较多,单线程编译耗时较长,这里我们给他提提速(资源够才行):

mvn –T 8 clean install –DskipTests

   这里用到8个线程,最后执行:

mvn –T 8 clean package -Drelease -DskipTests -P-rpm

执行完后会在release/target/目录下,生成很多包,其中就包含了,完整版、核心版、RPM版的安装包。

2.StreamSets DC Edge源码查看与编译

StreamSets DC Edge源码可以在更多操作系统或硬件上编译。在这只介绍在linux上进行查看源码和编译源码。

2.1 环境准备

JDK8

Git 1.9

2.2 查看源码

(1)克隆源代码

因为streamsets DC Edge 是Go语言编写的,你首先要设置一个$GOPATH环境变量(不需要安装Go语言环境,会自动下载自动安装),然后新建一个工程目录例如:

mkdir –p $GOPATH/src/github.com/streamsets

cd $GOPATH/src/github.com/streamsets

git clone https://github.com/streamsets/datacollector-edge.git

下载完后,您可以通过:

git branch -a 或 git tag

查看现有分支和版本,您可以指定某个分支或版本查看,通过:

git checkout <version>

切换分支或版本。

(2)查看源码

 

主要的包就是stages这个目录了,这里包含了很多组件,当然这些组件在streamsets DC上是有对应的,当你在Edge 上开发一个组件时,DC上也是要开发一个对应的组件,后期在《StreamSets实战之路-开发篇》会讲到。

2.3 编译代码

工程编译主要通过gradle进行,但是你也不用安装gradle,会自动下载自动安装。

使用以下命令编译生成所有平台的安装包:

./gradlew clean dist  

注意:编译中遇到的一个比较棘手的问题就是,很多依赖包时需要翻墙的,但是在linux上翻墙也是很痛苦的。庆幸的是,在GitHub上都有依赖包镜像,但是这些包需要你手动下载,并设置修改包路径。后期,要是有需要,我可以把我这边的环境打一个包给大家,或者遇到问题及时交流。

 

Streamsets实战之路正在更新中,尽情期待!!!

此文章为博主原创,转载请标明出处和原始链接,谢谢。

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值