各種組件,比如tomcat、storm、flume,我們都可以通過JMX方式開啟遠程調試,主要可以用來跟蹤源碼,了解程序內部的運行機制,其次,也有利於你修改源碼。
首先,本質上是要修改flume本身啟動的配置文件的jvm配置部分。
找到flume目錄下的bin文件夾,下面會有個flume-ng文件,這便是flume本身啟動腳本所在,找到如下部分:
# set default params FLUME_CLASSPATH="" FLUME_JAVA_LIBRARY_PATH="" JAVA_OPTS="-Xmx20m" LD_LIBRARY_PATH=""
可以看到這是配置jvm部分,替換為JMX遠程調試配置,這種配置網上很多,我的如下:
# 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。
好了,到了這里,你可以在eclipse里面開啟遠程調試模式,具體如下:
new一個,然后進行配置,主要是主機IP和上面那個port,如下:
然后,eclipse導入flume源碼,盡情享受調試源碼的樂趣吧,你也可以隨意修改。
PS:源碼調試是一個學習源碼的快速途徑,很多組件,諸如storm,tomcat,hadoop等等都可以這樣進行JMX配置,大同小異。