HBase源码分析之远程调试
来源:互联网 发布:淘宝 安卓 旧版 编辑:程序博客网 时间:2024/06/05 07:17
远程调试是JDWP提供的,通过Agent Library的形式加载到JVM中,所以与编译无关,只要运行Java程序时加入调试参数即可。
我们通过IDE来创建调试配置,以Intellij IDEA为例,选择Edit Configurations,添加Remote,就可以看到IDE提供的调试参数,把它加到Java的运行参数里就可以了。
在运行脚本start-hbase.sh时,实际执行在bin/hbase文件中。修改bin/hbase文件,把调试参数加进去,只要在最终执行java之前加入就行,为了方便查找,我加在了最后一段之前。调试时如果配置了两个进程都开启调试,会导致抢占同一个端口,可以一次只调试一个进程或者修改端口号来避免冲突。
...##################################################################### masa's remote debugger####################################################################REMOTE_DEBUGGER="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=localhost:5005"# 调试Master# if [ "$COMMAND" = "master" ] ; then# if [ "$1" != "stop" ] && [ "$1" != "clear" ] ; then# HBASE_OPTS="$HBASE_OPTS $REMOTE_DEBUGGER"# fi# fi# 调试RegionServer if [ "$COMMAND" = "regionserver" ] ; then if [ "$1" != "stop" ] ; then HBASE_OPTS="$HBASE_OPTS $REMOTE_DEBUGGER" fi fi################################# END ##############################HEAP_SETTINGS="$JAVA_HEAP_MAX $JAVA_OFFHEAP_MAX"# Exec unless HBASE_NOEXEC is set.export CLASSPATHif [ "${HBASE_NOEXEC}" != "" ]; then "$JAVA" -Dproc_$COMMAND -XX:OnOutOfMemoryError="kill -9 %p" $HEAP_SETTINGS $HBASE_OPTS $CLASS "$@"else exec "$JAVA" -Dproc_$COMMAND -XX:OnOutOfMemoryError="kill -9 %p" $HEAP_SETTINGS $HBASE_OPTS $CLASS "$@"fi
这时运行start-hbase.sh,IDE中运行Debug,就可以断点到了。
调试HBase时,还需要将zookeeper.session.timeout、hbase.zookeeper.property.tickTime、hbase.rpc.timeout、hbase.client.operation.timeout、hbase.client.scanner.timeout.period等参数时间设的长一些,以免因为调试时间过长导致连接超时断开、Server关闭等问题。
阅读全文
0 0
- HBase源码分析之远程调试
- HBase源码分析之KeyValue
- HBase源码分析之WAL
- HBase源码分析之KeyValue
- HBase源码分析之WALEdit
- HBase源码分析之用户
- hbase 远程调试问题
- hbase远程调试
- HBase源码分析之Region定位
- HBase源码分析之Region合并merge
- HBase源码分析之Region上线
- HBase源码分析之Region下线
- HBase源码分析之事件处理模型
- HBase源码分析之BlockCache二:BucketCache
- HBase源码分析之Simple权限验证
- HBase源码分析之Ranger权限验证
- HBase源码分析之org.apache.hadoop.hbase.catalog包
- Hbase源码分析之org.apache.hadoop.hbase.client包
- JAVA 缓存一致性协议
- Spring框架的JDBC模板和事务管理
- LeetCode 448. Find All Numbers Disappeared in an Array
- oracle数据一致性和事务控制
- 使用maven快速构建SSM项目
- HBase源码分析之远程调试
- SQL(Oracle)学习20170917
- 40. Combination Sum II
- 页面表格可编辑input框变大的问题
- 推荐一个本书《深入分析Java Web技术内幕(修订版)》,许令波著
- Java中函数回调机制的深入理解
- 子类覆盖父类方法问题
- 有序链表合并
- draggrid简单用法