Ambari(四)----使用IDEA远程调试Ambari-Server

6 篇文章 0 订阅

文档目录

一. 远程调试

二. 配置IDEA远程调试Ambari-Server

一. 远程调试

1.1 为什么要使用远程调试?

为了查看追踪Ambari-Server对Rest API的处理过程,在理解基本原理的前提下基于Ambari进行二次开发.

常规的方式有以下两种:

  1. 直接阅读源码

    缺点: 晦涩难懂,很难抓住重点,效率低下

  2. 本地Debug

    缺点: 因本地缺乏必要环境及配置,会直接报错.无法深入了解执行过程

基于此:采用Debug方式启动Ambari-Server,然后使用本地IDEA环境远程连接Ambari-Server,对Ambari-Server进行远程调试,追踪Ambari-Server的运行流程.

1.2 远程调试原理

本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。

被调试程序的远程虚拟机: 作为 Debug 服务端,监听 Debug 调试指令。

调试程序的本地虚拟机: IDEA 中配置的 Remote Server,指定 Debug 服务器的Host:Port,以供 Debug 客户端程序连接。

注意事项:

  1. 被调试的服务器需要开启调试模式
  2. 服务器端的代码和本地代码必须保持一致,否则会出现断点无法进入的问题。

二. 配置IDEA远程调试Ambari-Server

注: 我的IDEA版本为社区版的2020.2,不同版本之间操作可能有些许差别

2.1 在IDEA中配置远程服务器
  1. 在IDEA界面上方工具栏的文本框中,选择Edit Configurations…,如下图:

在这里插入图片描述

  1. 在弹出的Run/Debug Configurations对话框中,点击添加按钮,选择Remote

在这里插入图片描述

  1. 配置Remote,主要配置下图中红框标出的属性,包括:
Name
Host
Port
Use module classpath(此处应配置ambari源码的根目录)

在这里插入图片描述

点击OK按钮保存该配置.

2.2 以Debug模式启动Ambari-Server

这里可以Ambari-Server后端使用的数据库可以
选择MySQL数据库(推荐)或者默认的postgreSQL数据库

使用MySQL数据库,需要做进一步的配置,操作步骤如下:


#  拷贝mysql驱动
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/
# 编辑ambari.properties文件 
vim /etc/ambari-server/conf/ambari.properties # 增加属性:server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar 

使用如下命令Debug启动Ambari-Server

java -server -Xdebug  -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=6666 \
-XX:NewRatio=3 -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit \
-XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled \
-Dsun.zip.disableMemoryMapping=true -Xms1012m -Xmx3048m \
-XX:MaxPermSize=256m-Djava.security.auth.login.config=/etc/ambari-server/conf/krb5JAASLogin.conf \
-Djava.security.krb5.conf=/etc/krb5.conf -Djavax.security.auth.useSubjectCredsOnly=false \
-cp /etc/ambari-server/conf:/usr/lib/ambari-server/*:/usr/share/java/mysql-connector-java.jar \
org.apache.ambari.server.controller.AmbariServer

注意:这里配置的端口号应与2.1部分配置的相对应

参数解释:

-Xdebug:通知JVM工作在调试模式下
-Xrunjdwp:通知JVM使用(java debug wire protocol)来运行调试环境。
2.3 在IDEA中链接Ambari-Server,追踪程序运行流程
  1. 在程序中相应位置打上断点
  2. 服务器启动后,工具栏界面点击小虫子按钮开启Debug

在这里插入图片描述

正常连接服务器,进入调试后,在控制输出台输出信息如下:

在这里插入图片描述

  1. 点击Debugger进入调试,查看追踪Ambari-Server运行流程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值