遠程調試ambari-metrics的方法

IDE:intellij

在ambari-metrics-collector上找到start的運行腳本,再找到啓動ambari-metrics-collector的java命令:

vi /var/lib/ambari-agent/cache/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_collector.py 

這裏寫圖片描述

發現是執行 /usr/sbin/ambari-metrics-collector 這個腳本start的,那麼編輯這個腳本找到java的啓動server的命令,添加調試參數 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8081

vi /usr/sbin/ambari-metrics-collector

添加後如下所示:
這裏寫圖片描述

nohup "${JAVA}" "-cp" "/usr/lib/ambari-metrics-collector/*:${COLLECTOR_CONF_DIR}" "${AMS_COLLECTOR_OPTS}" "-Djava.net.preferIPv4Stack=true" "-Dams.log.dir=${AMS_COLLECTOR_LOG_DIR}" "-Dproc_${DAEMON_NAME}" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081  "${CLASS}" "$@" > $OUTFILE 2>&1 &

這樣,再在ambari serve 的web ui啓動 Metrics Collector ,然後在IDE中編輯遠程調試的configurations,寫上對應的host和暴露的port。
這裏寫圖片描述

雙方就是通過填寫的port進行通信,所以要注意之前port必須沒有進程在佔用。

設置斷點,OK,可以調試了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章