• 编译HBase1.0.0-cdh5.4.2版本


    1. 编译环境准备

    Jdk:1.7.0_x
    Maven : 3.3.9
    hbase: cdh5.4.2-release

    2. 用idea打开项目

    使用git clone得到HBase源码。打开git:

    将HBase项目拉取到本地:

    拉取完毕之后,在idea的命令窗口,使用命令 git checkout cdh5.4.2-release,切换到和生产环境对应的HBase版本。

    切换完成后项目结构如下:

    3. 编译前准备

    3.1 为maven-resources-plugin指定版本

    打开 hbase项目根目录下的pom.xml文件,找到maven-resources-plugin,为其指定好version。

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4</version>
    <plugin>
    

    3.2 跳过版本检查

    打开conf文件夹在hbase-site.xml添加如下设置

    <property>
        <name>hbase.defaults.for.version.skip</name>
        <value>true</value>
    </property>
    

    3.3 生成模板代码

    在hbase-server的jamon包下,有以jamon为后缀名的文件,jamon是一种模板语言,可以把该文件生成java文件。
    在http://www.jamon.org网站下载jamon程序jamon-dist-2013.12.28.zip。
    解压后拷贝jamon-api-2.3.1.jar jamon-processor-2.4.2.jar jamon-runtime-2.4.1.jar到源码的hbase-serversrcmainjamon目录:

    然后在该文件夹打开命令行执行以下命令处理jamon文件:

    java -cp .;jamon-api-2.3.1.jar;jamon-processor-2.4.2.jar;jamon-runtime-2.4.1.jar org.jamon.compiler.TemplateProcessor --srcDir=. --destDir=. orgapachehadoophbase	mpl
    egionserver*
    
    java -cp .;jamon-api-2.3.1.jar;jamon-processor-2.4.2.jar;jamon-runtime-2.4.1.jar org.jamon.compiler.TemplateProcessor --srcDir=. --destDir=. orgapachehadoophbase	mplcommon*
    
    java -cp .;jamon-api-2.3.1.jar;jamon-processor-2.4.2.jar;jamon-runtime-2.4.1.jar org.jamon.compiler.TemplateProcessor --srcDir=. --destDir=. orgapachehadoophbase	mplmaster*
    

    jamon文件会生成相应的java文件,然后将hbase-server的src/main/jmon加入src路径,就可以引用到新生成的java文件了。

    4. 编译HBase代码

    在idea的命令窗口执行命令:mvn package -Dmaven.test.skip=true assembly:single,输出如下图则打包成功。

    在各模块的target目录可得到相应jar包,当我们打了补丁后编译出的jar包就可以放到集群的/usr/lib/hbase/lib目录中替换了。

    5. 本地调试HBase

    5.1本地启动HMaster

    添加hbase/conf 作为 hbase-server模块的 resources文件夹:

    然后运行hbase-server模块中的HMaster类,配置参数如下图:

    输出下面的信息说明启动成功。

    可在本地进行访问HBase:localhost:60010

    5.2 本地启动hbase-shell

    启动配置如下:

    VMoption为:

    -Dhbase.ruby.sources=E:IdeaProjectssourcecdh5.4.2hbasehbase-shellsrcmain
    uby
    -Dlog4j.configuration=file:E:IdeaProjectssourcecdh5.4.2hbaseconflog4j.properties
    

    启动完成后可以在console窗口执行shell命令。

    另外,Debug也可以针对HBase提供的测试用例,大部分用例都是基于一个本地模拟的Mini Cluster运行的。
    这个Mini Cluster运行在一个进程中,使用线程模拟HBase的关键进程。
    有些测试用例在window端启动可能会报无法找到文件的错误,需要在linux系统中执行用例才能正常。
    这个过程中,我们可以动手小改一下源码,验证自己的想法,或者观察因为改动所带来的行为变化,对熟悉HBase源码大有裨益

  • 相关阅读:
    Centos或Windows中部署Zookeeper集群及其简单用法
    Linux中使用sendmail发送邮件,指定任意邮件发送人
    使用log4net将C#日志发送到Elasticsearch
    在Centos6或者7上安装Kafka最新版
    最简单的配置Centos中JAVA的环境变量的方法
    JAVA通过oshi获取系统和硬件信息
    JAVA代码中获取JVM信息
    使用JavaCV播放视频、摄像头、人脸识别
    JAVA中通过JavaCV实现跨平台视频/图像处理-调用摄像头
    Linux中使用Vim快速更换文档中Windows换行符为Linux平台
  • 原文地址:https://www.cnblogs.com/stillcoolme/p/10011189.html
Copyright © 2020-2023  润新知