Hive 远程Debug

hive的远程debug可以说是相当的简单,方便。但是如果你的工作环境有网络上的限制,可能就需要变通一下。

一.Attach 模式(适用与本地能够通远程服务器)

1.配置idea


如图:host:为hive启动服务ip, port:hive默认是8000,可以启动hive的时候进行设置。

2.启动hive

直接执行命令:hive --debug (当然有些参数是直接可以设置的,比如设置端口 hive --debug[:port=5005])

3.启动idea remote。 之后就可以愉快的debug了。


二、Listen模式 (如果本地不通线上服务器,但是线上通本地,这种方式有效,如果两边都不通,再见!)

1.同样先配置idea


如图,端口可以自己配置。

2.修改debug.sh(找到bin/hive路径,debug.sh在hive同路径下的ext文件夹内)

 搜索:HIVE_MAIN_CLIENT_DEBUG_OPTS

然后注释这行以及下一行。

然后进行修改:

export HIVE_MAIN_CLIENT_DEBUG_OPTS=" -XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=n,address=本地IP:5005,suspend=y"
export HIVE_CHILD_CLIENT_DEBUG_OPTS="-XX:+UseParallelGC -agentlib:jdwp=transport=dt_socket,server=n,address=本地IP:5005,suspend=y” 

3.先启动idea的remote,再执行hive --debug命令。




### 配置远程调试的步骤 远程调试是一种非常实用的调试方法,尤其适用于本地环境无法复现的问题或部署在服务器上的应用程序。以下是如何在不同环境中配置远程调试的详细步骤。 #### 配置 Tomcat 远程调试 在使用 Tomcat 作为服务器时,可以通过修改启动脚本的方式启用远程调试功能。 1. **修改 Tomcat 启动脚本** 打开 `Tomcat/bin/startup.bat` 文件,在文件开头添加以下配置: ```bash SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 ``` 其中,`address=8000` 表示远程调试端口为 8000,可以根据需要修改为其他端口。 2. **启动 Tomcat** 启动 Tomcat 后,检查控制台输出,确认配置已生效。正常情况下会看到类似以下的输出: ``` Listening for transport dt_socket at address: 8000 ``` 3. **配置 Eclipse** 在 Eclipse 中进行远程调试,需要配置一个远程调试任务。 - 点击 Eclipse 上方的 **Debug** 图标,选择 **Debug Configurations**。 - 在左侧找到 **Remote Java Application**,双击创建一个新的远程调试任务。 - 配置目标主机的 IP 地址和调试端口(如 8000)。 - 点击 **Debug** 按钮,进入调试模式。 4. **验证调试** 在 Eclipse 的源码项目中设置断点,然后通过访问服务器上的应用触发断点。如果配置正确,Eclipse 将进入调试模式,并允许逐步执行代码、查看变量等操作。 #### 配置 WebSphere 远程调试 WebSphere 的远程调试方式与 Tomcat 类似,主要区别在于 JVM 参数的配置。 1. **修改 WebSphere 的 JVM 参数** 在 WebSphere 的管理控制台中,导航到 **Servers > Server Types > WebSphere application servers**,选择目标服务器并进入 **Java and Process Management > Process Definition > Java Virtual Machine**。 添加以下 JVM 参数: ```bash -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 ``` 2. **配置 Eclipse** Eclipse 的配置与 Tomcat 相同,只需确保 IP 地址和端口与 WebSphere 的调试端口一致即可。 3. **验证调试** 与 Tomcat 类似,在 Eclipse 中设置断点并触发请求,即可进入调试模式。 #### 配置 IntelliJ IDEA 远程调试 IntelliJ IDEA 也支持远程调试,适用于如 Hive 等场景。 1. **启动带调试参数的应用** 例如,在启动 Hive 时添加调试参数: ```bash bin/hive --debug -hiveconf hive.root.logger=DEBUG,console ``` 2. **配置 IntelliJ IDEA** - 打开 **Run > Edit Configurations**。 - 点击 **+** 号,选择 **Remote JVM Debug**。 - 配置主机 IP 和调试端口(默认 5005)。 - 应用配置并启动调试。 3. **验证调试** 在 IntelliJ IDEA 的源码中设置断点,并在控制台输入命令(如 `show databases`),触发断点后即可进入调试模式。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值