各類組件,好比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