博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译HBase1.0.0-cdh5.4.2版本
阅读量:4321 次
发布时间:2019-06-06

本文共 2288 字,大约阅读时间需要 7 分钟。

1. 编译环境准备

Jdk:1.7.0_x

Maven : 3.3.9
hbase: cdh5.4.2-release

2. 用idea打开项目

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

659358-20181124094131818-231834196.png
将HBase项目拉取到本地:
659358-20181124094725786-722519312.png

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

659358-20181124095005756-1354015476.png
切换完成后项目结构如下:
659358-20181124100559832-2137905349.png

3. 编译前准备

3.1 为maven-resources-plugin指定版本

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

org.apache.maven.plugins
maven-resources-plugin
2.4

3.2 跳过版本检查

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

hbase.defaults.for.version.skip
true

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-server\src\main\jamon目录:
659358-20181124100538474-580704978.png

然后在该文件夹打开命令行执行以下命令处理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=. org\apache\hadoop\hbase\tmpl\regionserver\*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=. org\apache\hadoop\hbase\tmpl\common\*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=. org\apache\hadoop\hbase\tmpl\master\*

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

659358-20181124100521389-1068201690.png

4. 编译HBase代码

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

659358-20181124100957664-1229887287.png

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

659358-20181124100938912-356661492.png

5. 本地调试HBase

5.1本地启动HMaster

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

659358-20181124101233538-1487152742.png

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

659358-20181124101335582-646424857.png
输出下面的信息说明启动成功。
659358-20181124101401575-1473004071.png
可在本地进行访问HBase:localhost:60010
659358-20181124101523274-2115200678.png

5.2 本地启动hbase-shell

启动配置如下:

659358-20181124101736619-1053411108.png

VMoption为:

-Dhbase.ruby.sources=E:\IdeaProjects\source\cdh5.4.2\hbase\hbase-shell\src\main\ruby-Dlog4j.configuration=file:E:\IdeaProjects\source\cdh5.4.2\hbase\conf\log4j.properties

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

另外,Debug也可以针对HBase提供的测试用例,大部分用例都是基于一个本地模拟的Mini Cluster运行的。

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

转载于:https://www.cnblogs.com/stillcoolme/p/10011189.html

你可能感兴趣的文章
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
CKplayer:视频推荐和分享插件设置
查看>>
CentOS系统将UTC时间修改为CST时间
查看>>
redis常见面试题
查看>>
导航控制器的出栈
查看>>
玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]
查看>>
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
查看>>
Delphi消息小记
查看>>
JVM介绍
查看>>
将PHP数组输出为HTML表格
查看>>
经典排序算法回顾:选择排序,快速排序
查看>>
BZOJ2213 [Poi2011]Difference 【乱搞】
查看>>
一道关于员工与部门查询的SQL笔试题
查看>>
Canvas基础
查看>>
[Hive - LanguageManual] Alter Table/Partition/Column
查看>>
可持久化数组
查看>>
去除IDEA报黄色/灰色的重复代码的下划波浪线
查看>>
Linux发送qq、网易邮件服务配置
查看>>