研究flume有一段时间了,不过在对其源码进行修改时,每次都是将修改的代码上传到服务器,然后重启,特别麻烦及浪费时间。前段时间组长告诉我可以远程调试flume源码,这样无论对于阅读源码或是开发都是十分方便的,当时上网上找了一下教程,感觉很简单,也调通了,不过后面也没用。最近需要研读源码了,感觉特别的吃力,才想到可以利用debug模式去看。所以,就将配置过程及踩的坑记录一下。
- 首先下载flume源码tar包flumetar包下载
- 将其放到服务器中并解压,进行相关的基础配置(jdk);
- 进入/bin/目录中,找到flume-ng,找到如下代码:
# set default params
FLUME_CLASSPATH=""
FLUME_JAVA_LIBRARY_PATH=""
JAVA_OPTS="-Xmx20m"
LD_LIBRARY_PATH=""
将其中的JAVA_OPTS修改为:
JAVA_OPTS="-Xmx20m -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y"
然后启动flume,需要进入到/bin下,命令如下
./flume-ng .....
- 此处注意:在第2步基础配置中的flume-env.sh中也有一个JAVA_OPTS属性,这个需要注释掉,不然用的即使这个属性,后面的启动也会有错误
- 接下来从github中拉取flume源码
- 使用intellij打开源码,选择Run/Debug Configurations 中选择Remote, 接下来可以参考:https://blog.csdn.net/u012373815/article/details/60601118