博客 远程DEBUG HADOOP源码方法

远程DEBUG HADOOP源码方法

   数栈君   发表于 2024-02-19 11:13  270  0

1. 安装IDEA

2. 下载hadoop源码,必须与集群服务代码版本一致,否则会导致有的类无法找到

3. 将源码导入IDEA工程并完成build

4. 点击 菜单栏--运行--编辑配置 进行相关debug设置

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/913bd93bd7995bf037c8e9f5b7ce4ddf..png

5. 点击弹出窗口右上角的“+”添加一个新配置内容

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/921698b7e6c2645ac06d53054b0a253c..png

6. 选择“远程JVM调试”

     http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/45a4706c93ce9299dbdc0870089a9d71..png
  

7. 对相关项目进行配置

名称:配置名称--可自定义

调试器模式:选择“附加到远程JVM”

主机:远程服务所在节点IP(此处以hiveserver为例,填写hiverserver所在节点IP)

端口:可自定义(注意:确定此端口在相应节点未被占用并处于对外开放状态)

远程JVM的命令行实参:记录此内容


"-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n"

dt_socket表示使用套接字传输。

address=5005

JVM在5005端口上监听请求,这个设定为一个不冲突的端口即可。

server=y

y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。

suspend=y

y表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。


http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/824c51b2751719b515d96cf6b08e1537..png

8. 登陆到对应的集群或者相应节点上修改hiveserver的JVM参数,将第7步记录的实参信息添加到JVM参数最后,注意多个参数中间的空格。此处已HDP集群为例

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/04ffe59701207e0086b48d43334f0e48..png

9. 重启hive服务

10. 在可复现问题堆栈对应的代码块打debug点

11. 登陆hive客户端beeline进行问题复现,此时即可在IDEA中进行相关代码debug




《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack  
0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群