• hbase源码编译调试


    环境

    jdk 1.8.0_144

    maven 3.5.4

    hbase 0.98.6

    hadoop 2.6.0 (需要在环境变量设置hadoop home,以及放置winutils.exe到hadoop bin目录下)

     

    开始

    1. 打开 maven 的配置文件( windows 机器一般在 maven 安装目录的 conf/settings.xml ),在<mirrors></mirrors>标签中添加 mirror 子节点:

    <mirror>
     <id>aliyunmaven</id>
     <mirrorOf>*</mirrorOf>
     <name>阿里云公共仓库</name>
     <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    1. 选择apache hbase 0.98.6版本,code--> download zip(也可以直接在idea里通过git客户端下载)

    2. 导入源码到idea中, 修改父pom文件

    <surefire.version>2.12-TRUNK-HBASE-2</surefire.version>
    修改为:
    <surefire.version>2.18.1</surefire.version>
    1. 在hbase client模块修改org.apache.hadoop.hbase.util.PoolMap类,注释掉如下红色部分。

    2. 在idea中选择maven package

    1. 如果出现类似错误(实际情况日志不是这样,我记不清具体是啥了)可以参考如下处理

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project xxx: There are test failures.

    在对应pom.xml文件中配置跳过测试,如下:

    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.18.1</version>
     <configuration>
      <skipTests>true</skipTests>
     </configuration>
    </plugin>
    1. 基本就可以BUILD SUCESS了,过程中会下载很多依赖。

    2. SUCESS之后修改源码中conf文件夹下的hbase-site.xml文件,覆盖写内容如下:

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

    <configuration>
       <property>
           <name>hbase.defaults.for.version.skip</name>
           <value>true</value>
       </property>
       <property>
           <name>hbase.zookeeper.quorum</name>
           <value>127.0.0.1</value>
       </property>
       <property>
           <name>hbase.rootdir</name>
           <value>D:/hbaseApp/hbase-0.98/root</value>
       </property>
       <property>
           <name>hbase.tmp.dir</name>
           <value>D:/hbaseApp/hbase-0.98/tmp</value>
       </property>
       <property>
           <name>hbase.zookeeper.property.dataDir</name>
           <value>D:/hbaseApp/hbase-0.98/zkDir</value>
       </property>
       <property>
           <name>hbase.cluster.distributed</name>
           <value>false</value>
       </property>
       <property>
           <name>zookeeper.session.timeout</name>
           <value>100001</value>
       </property>
       <property>
           <name>zookeeper.session.timeout.localHBaseCluster</name>
           <value>100002</value>
       </property>
       <property>
           <name>hbase.zookeeper.property.maxSessionTimeout</name>
           <value>500000</value>
       </property>
       <property>
           <name>hbase.master.port</name>
           <value>60010</value><!--Hbase的Master的端口.默认: 60000-->
       </property>
       <property>
           <name>hbase.regionserver.port</name>
           <value>60020</value><!--HBase RegionServer绑定的端口,默认: 60020-->
       </property>
       <property>
           <name>hbase.regionserver.info.port</name>
           <value>60030</value><!--HBase RegionServer web 界面绑定的端口-->
       </property>
    </configuration>
    1. 将源码下的conf目录拷贝一份放到hbase-server模块src/main下,并设置为resource目录。idea中可以选中目录右键 mark derictory as

    2. 准备在idea中启动HMaster,先idea界面最上栏选择run-->edit configurations-->+-->application配置如下: 

    然后再选择run -->run hmaster,然后看日志是否有问题(如果出现Error:java:JDK isn't specified for module "XXXX"提示,需要将.idea文件夹删除,然后重新import源码到idea)启动成功之后访问localhost:60010就可以看到熟悉的master界面

    1. 参考第10步再设置hbase shell

    vm options:-Dhbase.ruby.sources=D:/dev/ideaC2018.3/sourcecode/hbase-rel-0.98.6/hbase-shell/src/main/ruby -Dlog4j.configuration=file:D:/dev/ideaC2018.3/sourcecode/hbase-rel-0.98.6/conf/log4j.properties

    同样执行run-->run shell

     就可以开始输入命令执行了。

     

    后面就可以自己打断点进行debug了。。。

  • 相关阅读:
    Visual Studio调试器指南---Disassembly窗口
    Visual Studio调试器指南---Register窗口
    Visual Studio调试器指南---Threads窗口
    关于System.Convert.ToInt16(float value)抛异常System.OverflowException---值对于 Int32 太大或太小的原因的探究
    关于System.OverflowException异常
    Visual Studio调试器指南---Memory 1-4窗口
    关于异常System.NullReferenceException
    关于C++标准异常之std::out_of_range
    VC调试器高级应用----高级断点篇
    Visual Studio调试器指南---CallStack窗口
  • 原文地址:https://www.cnblogs.com/zz-ksw/p/14348329.html
Copyright © 2020-2023  润新知