mvn如何编译源码命令_生产上Flume如何源码编译and远程Debug

1510b4f591a5e3a1d704dc1bbda37039.gif

1.本地环境

apache-flume-1.8.0-src (官网下载源码,或者git下载)
jdk1.8

2.编译

(1)用Inteallij IDEA 导入已下载的flume工程
(2)修改flume-parent下的 pom.xml 添加 aliyun的仓库(加快下载,有些包直接从maven repository上下载很慢 )
maven-alihttp://maven.aliyun.com/nexus/content/groups/public/truetruealwaysfail
(3)开始漫长的编译过程

如果是第一次的话,可能下载包要花2个多小时,中间可能会报错(报错主要是某些包没下载成功,此时可以手动从仓库中手动下载到本地,然后放在本地 的maven 包路径下,默认的本地的包路径是 C:\Users\你的用户名.m2\repository 下面)

mvn clean
mvn install -DskipTests -U -Dtar
(4)由于整个项目是用pom管理包和模块,十分方便,如果在整个编译过程中,某些模块你需要编译,或者编译耗时,或者编译失败,并且你暂时用不到整个模块,可以从pom中注释掉这个模块,不做编译,具体做法如下图所示(具体的根据你的需求操作即可)

d196c0f9bdfc80aa5611da98ca13acf0.png

3.远程调试

(1)修改服务器上的 bin/flume-ng 中的JAVA_OPTS变量,支持远程调试
JAVA_OPTS="-Xmx20m -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y"

具体如下:

4c3f359c94af68fadb299d2430132a5d.png

(2)Inteallij IDEA配置 ,远程调试

0e76f970694d4976cf8ad315ba31b8fb.png

acb35856c0ff982c8f3ff5167f05812b.png

64afe9055d0bde1e40a115a8386468a4.png

(3)在任意代码出打上断点

2793833a5ec9a91afd23eeadb9adb980.png

(4)启动flume-ng(按实际情况修改下面命令)
bin/flume-ng agent --conf conf --conf-file ./conf/flume-custom.properties --name hd1 -Dflume.root.logger=INFO,console

启动后日志如下:

e9824f66b9a6fa93f628ac55b0b4e8f5.png

(5)Inteallij IDEA 开始debug,可以发现在断点处停止,debug流程成功了

40a6bc5c6cea7c73cdc0387d643c5b38.png

4.思考

  • 源码编译耗时费力,需要耐心,熬过去了,会有很大收获,同样也是更好理解源码的开始,万事开头难

  • remote debug可以更方便的了解执行流程,学习源码的捷径


Spark+Flink全栈训练营

高级班第7期

正式报名倒计时

8月初上课

咨询课程内容及优惠活动哟

        09a8de9d73468bbff54e90b8a6ffdb58.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值