编译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:

编译HBase1.0.0-cdh5.4.2版本


HBase项目拉取到本地:

编译HBase1.0.0-cdh5.4.2版本

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

编译HBase1.0.0-cdh5.4.2版本


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

编译HBase1.0.0-cdh5.4.2版本

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文件。
在网站下载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目录:

编译HBase1.0.0-cdh5.4.2版本

然后在该文件夹打开命令行执行以下命令处理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文件了。

编译HBase1.0.0-cdh5.4.2版本

4. 编译HBae代码

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

编译HBase1.0.0-cdh5.4.2版本

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

编译HBase1.0.0-cdh5.4.2版本

5. 本地调试HBase 5.1本地启动HMaster

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

编译HBase1.0.0-cdh5.4.2版本

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

编译HBase1.0.0-cdh5.4.2版本


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

编译HBase1.0.0-cdh5.4.2版本


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

编译HBase1.0.0-cdh5.4.2版本

5.2 本地启动hbase-shell

启动配置如下:

编译HBase1.0.0-cdh5.4.2版本

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命令。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsdjd.html