hbase源码编译调试
环境
jdk 1.8.0_144
maven 3.5.4
hbase 0.98.6
hadoop 2.6.0 (需要在环境变量设置hadoop home,以及放置winutils.exe到hadoop bin目录下)
开始
-
打开 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>
-
选择apache hbase 0.98.6版本,code--> download zip(也可以直接在idea里通过git客户端下载)
-
导入源码到idea中, 修改父pom文件
<surefire.version>2.12-TRUNK-HBASE-2</surefire.version>
修改为:
<surefire.version>2.18.1</surefire.version>
-
在hbase client模块修改org.apache.hadoop.hbase.util.PoolMap类,注释掉如下红色部分。
-
在idea中选择maven package
-
如果出现类似错误(实际情况日志不是这样,我记不清具体是啥了)可以参考如下处理
[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>
-
基本就可以BUILD SUCESS了,过程中会下载很多依赖。
-
SUCESS之后修改源码中conf文件夹下的hbase-site.xml文件,覆盖写内容如下: