HBase0.98.1-cdh5.1.2源码编译
来源:互联网 发布:ddc控制器编程 编辑:程序博客网 时间:2024/05/22 07:50
最近线上使用的hbase版本发现一个重大bug,需要修改源码才能解决问题,于是尝试着对这个源码进行修改后重新编译,记录下过程,花了2天时间,哎。
首先将hadoop和hbase的源码包上传到编译用的centos测试机器上,并解压:
我们第一个编译hadoop,因为hbase需要依赖hadoop的相关jar包,进入hadoop-2.3.0-cdh5.1/src后,执行命令“mvn package -Pdist -DskipTests -Dtar”
成功后输出:
最终可以用于安装的hadoop包在模块hadoop-dist/target下面,文件名为“hadoop-2.3.0-cdh5.1.2.tar.gz”。
然后开始编译hbase源码解压后形成的目录,找到dev-support/generate-hadoopX-poms.sh文件,然后修改第77行,将$HBASE_HOME替换成解压后文件夹的绝对路径,比如本文的“/export/build/hbase-0.98.1-cdh5.1.2”,如下图所示:
接着执行该脚本,具体命令如下:
./generate-hadoopX-poms.sh 0.98.1 0.98.1-hadoop2
然后需要把所有pom.xml.hadoop2文件里面的version从0.98.1-hadoop2-cdh5.1.2改成0.98.1-cdh5.1.2,否则到时生成的hbase安装启动的时候会报错“Exception in thread "main" java.lang.RuntimeException: hbase-default.xml file seems to be for and old version of HBase (0.98.1-cdh5.1.2), this version is 0.98.1-hadoop2-cdh5.1.2-cdh5.1.2
”
<modules>
<module>hbase-server/pom.xml.hadoop2</module>
<module>hbase-thrift/pom.xml.hadoop2</module>
<module>hbase-shell/pom.xml.hadoop2</module>
<module>hbase-protocol/pom.xml.hadoop2</module>
<module>hbase-client/pom.xml.hadoop2</module>
<module>hbase-hadoop-compat/pom.xml.hadoop2</module>
<module>hbase-common/pom.xml.hadoop2</module>
<module>hbase-it/pom.xml.hadoop2</module>
<module>hbase-examples/pom.xml.hadoop2</module>
<module>hbase-prefix-tree/pom.xml.hadoop2</module>
<module>hbase-assembly/pom.xml.hadoop2</module>
<module>hbase-testing-util/pom.xml.hadoop2</module>
</modules>
同时需要将生成的pom.xml.hadoop2中2.12-TRUNK-HBASE-2替换成2.18.1
出现以下异常的时候,在编译参数中加入 -Drat.numUnapprovedLicenses=100
Too many unapproved licenses: 1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal o
rg.apache.rat:apache-rat-plugin
mvn -f pom.xml.hadoop2 clean compile package -Dhadoop.profile=2.0 -DskipTests=true assembly:single -Prelease -Drat.numUnapprovedLicenses=3000
如果编译没成功, 可以试着每个模块单独采用mvn clean install -DskipTests=true后,然后退到外面重新编译, 我发现多次编译操作后才可以成功。
外发现有时我们由于改动源码,只需要动某个模块,可以只编译那个模块,成功以后,将其替换掉官方安装包里对应的jar即可,这样风险小点。
有时如果出现某些jar编译的时候无法下载,可以尝试换一个maven仓库试试,具体在maven的settings.xml中更改。
- HBase0.98.1-cdh5.1.2源码编译
- hbase0.98.1源码编译
- cdh5 源码编译,导入eclipse
- Hbase0.98.6-CDH5.3集群搭建
- Hadoop-2.5.0-cdh5.2.1以及Hadoop-2.5.0-cdh5.3.2 获取源码及编译
- Hadoop-2.3.0-cdh5.0.0获取源码及编译
- Hadoop-2.3.0-cdh5.0.0获取源码及编译
- Hadoop-2.3.0-cdh5.0.0获取源码及编译
- Hadoop-2.3.0-cdh5.0.0 获取源码及编译
- Hadoop-2.5.0-cdh5.2.0 获取源码及编译
- Spark-2.1.0-hadooop-2.6.0-cdh5.7.0源码编译
- Spark 2.2源码编译 & 支持hadoop-2.6.0-cdh5.7.0
- CDH5.4.7 环境下spark 1.3 源码包编译步骤及错误解决办法
- Gobblin编译支持CDH5.4.0
- HBase0.96.0 for Hadoop2.2.0编译
- HBase0.96.0 for Hadoop2.2.0编译
- hbase0.98.8 for Hadoop2.5.2编译
- hbase0.98 源码分析-读数据流程
- Length of string in bash
- 59 js validate 调试模式 tp版本和css样式
- CvScalar
- Unity3D研究院之Assetbundle的实战(六十三)
- POJ2155:Matrix(二维树状数组,经典)
- HBase0.98.1-cdh5.1.2源码编译
- Web验证码的使用
- XCUIElementTypeQueryProvider API
- ehcache持久化
- Android横屏竖屏切换的问题
- markdown
- JavaWeb系列之十四(DBUtil)
- sgu-265. Wizards
- JavaWeb系列之十五(监听器)