flume開發(fā)時(shí)會遇無法直接在代碼中debugger,這樣嚴(yán)重影響了開發(fā)效率,以及產(chǎn)品后期的測試伺糠。本文介紹通過jvm自帶的debug,runjdwp配合idea進(jìn)行遠(yuǎn)程調(diào)試flume程序蒙谓。
1 在項(xiàng)目中通過run/debug Configurations 添加remote
2 修改socket端口號(如果需要,idea默認(rèn)設(shè)置端口號為5005)
3 設(shè)置本地環(huán)境變量
export FLUME_JAVA_OPTS="-Xmx2g -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y"
這里需要注意的一點(diǎn) -Xrunjdwp 后面address對應(yīng)的端口號需要和idea remote配置中的端口號對應(yīng)
4 運(yùn)行flume程序
bin/flume-ng agent -C $CLASS_PATH -c conf -f conf/flume-apm.properties -n agent -Dflume.root.logger=DEBUG,console &
這里根據(jù)自己項(xiàng)目需要配置class_path 已經(jīng)flume配置文件训桶,flume使用會在flume系列其他文章中介紹累驮,具體可以參考官方文檔http://flume.apache.org/
運(yùn)行程序后顯示
表明應(yīng)用程序已經(jīng)開始監(jiān)聽5005端口,等待調(diào)試鏈接
5 運(yùn)行之前步驟配置的remote
在源碼中加入斷點(diǎn)即進(jìn)行調(diào)試模式
flume遠(yuǎn)程調(diào)試