flume远程调试

研究flume有一段时间了,不过在对其源码进行修改时,每次都是将修改的代码上传到服务器,然后重启,特别麻烦及浪费时间。前段时间组长告诉我可以远程调试flume源码,这样无论对于阅读源码或是开发都是十分方便的,当时上网上找了一下教程,感觉很简单,也调通了,不过后面也没用。最近需要研读源码了,感觉特别的吃力,才想到可以利用debug模式去看。所以,就将配置过程及踩的坑记录一下。

  1. 首先下载flume源码tar包flumetar包下载
  2. 将其放到服务器中并解压,进行相关的基础配置(jdk);
  3. 进入/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属性,这个需要注释掉,不然用的即使这个属性,后面的启动也会有错误
  1. 接下来从github中拉取flume源码
  2. 使用intellij打开源码,选择Run/Debug Configurations 中选择Remote, 接下来可以参考:https://blog.csdn.net/u012373815/article/details/60601118

猜你喜欢

转载自my.oschina.net/112612/blog/1633670