• Hbase 源码调试:Remote debug 模式


    不愤不启,不悱不发;举一隅不以三隅反,则不复也。 

      解释:(教学生)不到他苦思冥想怎么也弄不明白的时候,不去开导他;不到他想说而又说不出来的时候,不去启发他。告诉他(四方形)的一个角,他不能由此推出另外三个角,就不再往下教他(新知识)了。

      学习Hbase的开端,就是要了解它的架构,以及HMaster,HRegionServer 的一个启动流程,明白了Hbase内部的基本流程,才能从大局上把握住。明白了Hbase的组成部分,才能在集群出现问题的时候,快速定位到模块,再从模块定位到具体的错误。

      下面记录下在搭建hbase源码阅读环境中的步骤:

        1、mvn 安装(Maven 3.0 or later)

        2、在命令行中cd 到hbase的源码目录中,执行 mvn eclipse:eclipse 慢慢等待啊

        3、在Eclipse中选择导入Existing Maven Project

        4、按照源码目录下的pom.xml的项目顺序对每个子项目进行 mavn install(Eclipse直接操作),这个过程中可能会提示jdk的 tools.jar找不到的问题,只需要在该项目  

           pom.xml文件中添加指定tools.jar的位置

    <dependency>
          <groupId>jdk.tools</groupId>
          <artifactId>jdk.tools</artifactId>
          <version>1.7</version>
          <scope>system</scope>
          <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
     </dependency>

       

      使用Remote debug的方式对Hbase源码进行调试,Remote debug 顾名思义就是远程的程序调试,使用这种方法对代码调试不需要本地具有程序的运行环境,而且更直观的看到hbase在集群模式中的启动过程和运行状况。

      Remote debug 的配置方式:

        1、在远程集群的hbase的conf目录下找到hbase-env.sh文件,在jvm启动参数中添加

           -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8081,server=y,suspend=y

          如:export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xdebug -Xnoagent -Djava.compiler=NONE -

          Xrunjdwp:transport=dt_socket,address=8081,server=y,suspend=y"

        参数说明:

          server=y         目标应用程序作为服务监听将要连接的远程调试器(常用)

          suspend=y/n   目标VM是否暂停等待本地debug连接,推荐使用y

          address=8081  端口。

        2、配置Eclipse的Remote debug, 右键项目 debug As --》 debug configuration

     

    点击Debug 就可以愉快的跟踪调试Hbase代码了。

          

        

  • 相关阅读:
    UniEAP V4 开发实践说明文档
    SI_WorkShop_V4安装手册
    unieap platform eclipse.ini vm设置
    asp.net 配置 web.config 禁用VS2013自带的Browser Link功能
    unieap 建库
    onserverclick
    工作中记录的命令和知识点(不断更新)
    CentOS 下做端口映射/端口转发
    DELL服务器硬件信息采集SHELL脚本
    Linux中变量#,@,0,1,2,*,$$,$?的意思
  • 原文地址:https://www.cnblogs.com/hankedang/p/4378779.html
Copyright © 2020-2023  润新知