您的位置:首页 > 其它

远程调试ambari-metrics的方法

2015-12-30 17:53 405 查看
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,可以调试了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: