博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop/HBase Remote Debug (远程调试) 设置
阅读量:5761 次
发布时间:2019-06-18

本文共 1742 字,大约阅读时间需要 5 分钟。

hot3.png

本地是windows开发环境,程序部署在远程的hadoop或hbase集群下,进行remote debug需要进行如下配置:

1. 事前准备

hadoop和hbase都是分布式集群,你不可能在同一时刻监听所有的节点,你需要引选择好一个节点,而这个节点的所承载的角色必须能执行到你需要debug的代码。比如:如果你要调试一个RegionObserver的某些代码,那么你需要选择一个region server作为remote debug的对象,而且region最好要balancer一下,然后根据你输入的数据来预判哪一个region server将会处理这个请求,一种更方便的做法是:关闭除调试节点之外的所有的region server,只建立一个region,这样调试起来会更加方便。然后再在该server上开启remote debug.

另外,为了避免在调试过程中由于请求超时而导致地调试中断,可以适当的延长请求的超时时间,以HBase为例,你需要修改hbase-site.xml文件中的zookeeper.session.timeout和hbase.zookeeper.property.tickTime的参数值,其中,timeout应该取2-20倍tickTime之间的值。生产环境上timeout最好不要超过1分钟,此处为了调试,我们设置为1个小时。

zookeeper.session.timeout
3600000
hbase.zookeeper.property.tickTime
180000

2. Client端(IDE)设置

这个不同的IDE都大同小异,没有需要特别说明的,本文以intellij为例,使用如下配置:

3. Server端设置

Server端的设置就是要找到启动相应服务的shell脚本,在脚本里把
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

这样一段jvm参数配置写到启动服务的命令行中去,我们以hbase regionserver为例,启动的这个服务的脚本是HBASE_HOME下的bin/hbase文件,打开该文件找到启动regionserver的命令行,在设置HBASE_OPTS的地方把我们的remote debug相关的jvm参数加进去,如下图:

如果想要调试hbase master或datanode,tasktracker等服务也是到相应的启动脚本里去这样追加,本文不再赘述, 但是需要注意的是:由于一个节点可能兼任多种角色,一定在恰当的位置添加调试参数,如果位置不当,后续的服务在启动时如果也重复要求占用调试端口,而该端口已经被前面启动的服务所占用,这就会导致后续的服务无法启动。比如:当一个node既是hbase master又是hbase regionserver时,如果你在hbase脚本的不正确的位置上加入调试参数,如果hbase master先启动,并且占用了调试端口,那么后续的hbase regionserver服务无法启动了,反过来如果是hbase regionserver服务先启动,那么hbase master就无法启动了

4. 代理问题

如果我们的远程主机是通过代理访问的话,会有一个小麻烦,那就是java的remote debug不支持代理设置,这样本地就无法连接到远程server上,解决方法就是使用ssh的tunnel功能建立一个正向隧道(方向是:Local),把远程主机的调试端口5005映射到本地,这样就可以像调试本地应用一样方便了。要特别提醒的是:为了避免不必要的麻烦,最好不要在该ssh连接上执行任何命令,需要操作远程主机应该再开一个新的无tunnel的ssh连接!以 putty为例,配合上述配置,设定如下:

转载于:https://my.oschina.net/pangzhuzhu/blog/327120

你可能感兴趣的文章
《大数据架构和算法实现之路:电商系统的技术实战》——1.2 分类任务的处理流程...
查看>>
Facebook 称 Flash 安全漏洞会损害其业务
查看>>
《C语言解惑》—— 2.4 空格让scanf莫名其妙
查看>>
Web 服务接口
查看>>
《动手搭建智能家居系统》——2.5 遥控设备
查看>>
块级(ctid)扫描在IoT(物联网)极限写和消费读并存场景的应用
查看>>
《响应式Web设计实践》一2.2 字体大小
查看>>
《深入浅出DPDK》—第1章1.8节小结
查看>>
《Spring 5官方文档》35. Spring注解编程模型
查看>>
《 硬件创业:从产品创意到成熟企业的成功路线图》——3.3 市场划分
查看>>
《好学的C++程序设计》——2.5 习题
查看>>
大数据背后的神秘公式(下):“贝叶斯革命”
查看>>
帮你学习Java语言的游戏
查看>>
《Python密码学编程》——1.3 制作纸质加密轮盘
查看>>
《实现模式(修订版)》—第3章3.2节原则
查看>>
自己动手构造编译系统:编译、汇编与链接2.3 ELF文件格式
查看>>
Logistic回归与最小二乘概率分类算法简述与示例
查看>>
docker 常用命令
查看>>
几个生物学理论在计算机科学中的运用案例
查看>>
【云栖大会】智慧物流
查看>>