一、环境说明
开发环境需要如下软件:
- smartgit 17.0.4 下载地址:http://www.syntevo.com/smartgit/welcome
- apache-ant-1.10.0-bin.tar.gz
- apache-maven-3.3.9.tar.gz
- devstudio-10.3.0.GA-installer-standalone.jar
- jdk-8u131-linux-x64.tar.gz
- postgresql-9.5.5-1-linux-x64.run
- spring-tool-suite-3.8.4.RELEASE-e4.6.3-linux-gtk-x86_64.tar.gz
- WebStorm-2016.3.2.tar.gz
官网说明:
https://streamsets.com/tutorials/
执行操作:
https://github.com/streamsets/datacollector/blob/master/BUILD.md
streamsets 数据收集器用户指南的地址:https://streamsets.com/documentation/datacollector/latest/help/index.html#Configuration/RolesandPermissions.html#concept_zyl_qld_yy
二、编译代码
- 在公司的中央仓库中使用smartgit下载源代码,下载的地址为:http://your usernam@************/gitblit/r/bigdata/embrace-datacollector.git 注意your usernam的修改
- 下载完之后,执行checkout local branch 到本地
- 下载完之后进入到根目录执行 : mvn package -Pdist,ui -DskipTests -DskipRat 来自于https://github.com/streamsets/datacollector/blob/master/BUILD.md 这个阶段有点慢,请耐心等待。
看到 BUILD SUCCESS 即可成功
三、IDE集成
- 编辑软件请使用devstudio,JDK1.8 ,mvn 3.3.9 并集成到 devstudio 中
- 导入之后查看是否是eclipse项目,如果不是请在项目中执行: mvn eclipse:eclipse,例如:xiaoxu@xiaoxu:~/softWare/smartgitWokspace/kafka-common$ mvn eclipse:eclipse
看到 BUILD SUCCESS 即可执行成功 - 把项目导入到devstudio中,导入的项目有: common / commonlib / container-common / container / basic-lib / hdp_2_6-lib / jdbc-lib ,并检查是否是eclipse项目,如果不是请参考2
最终效果如下: - 在devstudio刷新该项目,即可看到完整的项目结构
四、开发与调试
- 改配置文件,在$userWokspace中找到以下配置并修改 vi $userWokspace/dist/target/streamsets-datacollector-2.6.0.1/streamsets-datacollector-2.6.0.1/libexec/sdc-env.sh
$userWokspace 是你自己的项目仓库的地址
在sdc-env.sh 中加入第55行数据
52 # JVM options for the data collector process
53 #
54 export SDC_JAVA_OPTS="-Xmx1024m -Xms1024m -server -XX:-OmitStackTraceInFastThrow ${SDC_JAVA_OPTS}"
55 export SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
2. 进入到需要汉化的项目中进行汉化,例如:streamsets-datacollector-kafka_source-protolib 对指定的文件进行汉化,KafkaConfigBean.java / KafkaDSource.java / KafkaRawSourcePreviewer.java 等
3.汉化完之后在 $userWokspace中执行 mvn clean package -pl kafka_source-protolib(项目的名字) -DskipTests -Pdist 以便把项目打包,
例如:
4.把编译后的 *.JAT 放到 $userWokspace/dist/target/streamsets-datacollector-2.6.0.1/streamsets-datacollector-2.6.0.1/streamsets-libs/streamsets-datacollector-hdp_2_6-lib/lib/ 中
例如:
5.在$userWokspace 中执行dist/target/streamsets-datacollector-2.6.0.1/streamsets-datacollector-2.6.0.1/bin/streamsets dc
6.看到以下信息表示启动成功,可以看到访问的HTTP是:http://xiaoxu:18630
用户名与密码:admin/admin
7 浏览器访问http://xiaoxu:18630即可
8 如果有什么问题,可以查看日志:$userWokspace/dist/target/streamsets-datacollector-2.6.0.1/streamsets-datacollector-2.6.0.1/log/×
9 修改日志的级别,修改datacollector/container/src/main/resources/cluster-mr-log4j.properties
log4j.logger.com.streamsets.pipeline=ERROR
log4j.logger.com.streamsets.datacollector=ERROR
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.com.amazonaws.services.kinesis.clientlibrary.lib.worker.SequenceNumberValidator=WARN
log4j.logger.org.apache.kafka=WARN