文档章节

Hadoop/HBase Remote Debug (远程调试) 设置

猪刚烈
 猪刚烈
发布于 2014/10/12 11:47
字数 921
阅读 47
收藏 0

本地是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个小时。


<property>
    <name>zookeeper.session.timeout</name>
    <value>3600000</value>
</property>
<property>
    <name>hbase.zookeeper.property.tickTime</name>
    <value>180000</value>
</property>


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为例,配合上述配置,设定如下:



本文转载自:http://blog.csdn.net/bluishglc/article/details/18089751

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
性能测试工具操作数据库(十一)-Jmeter与Hbase

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/74279856 由于在网上找不到Jmeter连接Hbase的源文件或是插件,所以...

smooth00
2017/07/04
0
0
HBase 常用Shell命令

1.进入hbase shell console $HBASE_HOME/bin/hbase shell 如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命...

zlfwmm
06/26
0
0
win环境下 hbase 数据库搭建流程

Hbase单机版安装使用教程 Hbase介绍请参考技术支持文档,这里只说明Hbase 的安装和使用 第一步:下载安装Hbase数据库 链接:链接:https://pan.baidu.com/s/1si6Nokvz8xkUsmefsRlntQ 密码:k...

lijiaweizuishuai
05/28
0
0
记录一次生产环境hadoop集群优化以及pid文件缺失处理

一、优化准备 优化需要根据实际情况综合分析 1、关闭系统swap分区(如果未关闭的话) 在Hadoop中,如果使用系统默认设置,会导致swap分区被频繁使用,集群会不断发出警告。 对于每个作业处理...

断臂人
06/07
0
0
远程链接到HBase的问题

我在自己的Ubuntu上装了一个HBase,在Ubuntu上写代码测试都没有问题。但是在另外一台电脑[Windows]上使用该代码不能访问HBase。 提示的错误如下: 我的HBase-site。xml的配置如: 请问有没有...

震秦
2012/12/17
4.8K
5

没有更多内容

加载失败,请刷新页面

加载更多

centos7 部署Apache服务器

centos7 部署Apache服务器 置顶 2017年09月05日 09:12:49 师太,老衲把持不住了 阅读数:19700 飞翔科技 2017-09-04 16:24 Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和...

linjin200
33分钟前
1
0
CENTOS7 搭建文件服务器:samba共享linux文件夹

一、安装samba: sudo yum install samba 二、配置samba共享目录 sudo vi /etc/samba/smb.conf [rpi_web_notebooks] comment = 树莓派jupyter notebook目录 path = /home/......

mbzhong
43分钟前
2
0
解析Nuxt.js Vue服务端渲染摸索

本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Nuxt.js 十分简单易用。一个简...

前端攻城老湿
53分钟前
4
0
深入解析React中的元素、组件、实例和节点

React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在帮助大家加深对React的理解,以及在项目中更加灵活地使用React。 React 中的元素、组件、实例和节点,是React中关系密切的...

前端攻城小牛
今天
5
0
菜鸟网络三面面经(java开发岗):Spring boot+JVM+线程池+中间件

一面 1、HaspMap底层原理?HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 2、由上题提到锁的问题 3、MySQL的表锁&行锁&乐观锁&悲观锁,各自的使用场景 4、Java线程锁有哪些,各自的...

别打我会飞
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部