赞
踩
主要介绍StreamSets DC和StreamSets DC Edge怎么看源码和从源码编译生成安装包。
StreamSets DC源码clone目前只能在linux和Mac操作系统上进行,在Window有出现很多问题。在这只介绍在linux上进行查看源码和编译源码。
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)克隆源代码
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、…
建议先进行一遍,这样会把一些相关的依赖给下载下来:
mvn clean install –DskipTests
用于这个工程包含的模块比较多,单线程编译耗时较长,这里我们给他提提速(资源够才行):
mvn –T 8 clean install –DskipTests
这里用到8个线程,最后执行:
mvn –T 8 clean package -Drelease -DskipTests -P-rpm
执行完后会在release/target/目录下,生成很多包,其中就包含了,完整版、核心版、RPM版的安装包。
StreamSets DC Edge源码可以在更多操作系统或硬件上编译。在这只介绍在linux上进行查看源码和编译源码。
JDK8
Git 1.9
(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实战之路-开发篇》会讲到。
工程编译主要通过gradle进行,但是你也不用安装gradle,会自动下载自动安装。
使用以下命令编译生成所有平台的安装包:
./gradlew clean dist
注意:编译中遇到的一个比较棘手的问题就是,很多依赖包时需要翻墙的,但是在linux上翻墙也是很痛苦的。庆幸的是,在GitHub上都有依赖包镜像,但是这些包需要你手动下载,并设置修改包路径。后期,要是有需要,我可以把我这边的环境打一个包给大家,或者遇到问题及时交流。
Streamsets实战之路正在更新中,尽情期待!!!
此文章为博主原创,转载请标明出处和原始链接,谢谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。