开启flume的远程调试功能

各类组件,好比tomcat、storm、flume,咱们均可以经过JMX方式开启远程调试,主要能够用来跟踪源码,了解程序内部的运行机制,其次,也有利于你修改源码。java

首先,本质上是要修改flume自己启动的配置文件的jvm配置部分。tomcat

找到flume目录下的bin文件夹,下面会有个flume-ng文件,这即是flume自己启动脚本所在,找到以下部分:eclipse

# set default params
FLUME_CLASSPATH=""
FLUME_JAVA_LIBRARY_PATH=""
JAVA_OPTS="-Xmx20m"
LD_LIBRARY_PATH=""

能够看到这是配置jvm部分,替换为JMX远程调试配置,这种配置网上不少,个人以下:jvm

# set default params
FLUME_CLASSPATH=""
FLUME_JAVA_LIBRARY_PATH=""
JAVA_OPTS="-Xmx20m -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"
LD_LIBRARY_PATH=""

这里设定了远程调试的port:8787。socket

好了,到了这里,你能够在eclipse里面开启远程调试模式,具体以下:oop

new一个,而后进行配置,主要是主机IP和上面那个port,以下:学习

而后,eclipse导入flume源码,尽情享受调试源码的乐趣吧,你也能够随意修改。debug

 

PS:源码调试是一个学习源码的快速途径,不少组件,诸如storm,tomcat,hadoop等等均可以这样进行JMX配置,大同小异。3d

相关文章
相关标签/搜索