大数据源码编译系列——HBase编译

  |   0 评论   |   2,372 浏览

准备环境

JDK8

Maven

Ant

Git

GCC

Cmake

编译HBase

CDH发行版下载地址

准备文件

[root@nn1 native]# cd /usr/local/src/
[root@nn1 src]# wget http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.11.1-src.tar.gz
[root@nn1 src]# tar zxvf hbase-1.2.0-cdh5.11.1-src.tar.gz -C /usr/local/src/
[root@nn1 src]# cd hbase-1.2.0-cdh5.11.1

修改HBase依赖的JDK版本

[root@nn1 hbase-1.2.0-cdh5.11.1]# sed -i "s/1.7/1.8/g" `grep javaVersion -rl /usr/local/src/hbase-1.2.0-cdh5.11.1/pom.xml`

否则会报以下错误

[WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
Java is out of date.
  HBase requirs at least version 1.7 of the JDK to properly build from source.
  You appear to be using an older version. You can use either "mvn -version" or
  "mvn enforcer:display-info" to verify what version is active.
  See the reference guide on building for more information: http://hbase.apache.org/book.html#build


解决Bug

https://issues.apache.org/jira/browse/HBASE-14337

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (default) on project hbase-assembly: Error rendering velocity resource.: Error invoking method 'get(java.lang.Integer)' in java.util.ArrayList at META-INF/LICENSE.vm[line 1671, column 8]: InvocationTargetException: Index: 0, Size: 0 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (default) on project hbase-assembly: Error rendering velocity resource

简单的解决办法

[root@nn1 hbase-1.2.0-cdh5.11.1]# vim hbase-assembly/pom.xml

注释掉maven-remote-resources-plugin

image.png

[root@nn1 hbase-1.2.0-cdh5.11.1]# vim hbase-shaded/pom.xml

注释掉maven-remote-resources-plugin

image.png

编译

[root@nn1 hbase-1.2.0-cdh5.11.1]# mvn -DskipTests package -Pbuild-with-jdk8 -Phadoop-2.0 assembly:single

编译结果

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache HBase ....................................... SUCCESS [ 10.889 s]
[INFO] Apache HBase - Checkstyle .......................... SUCCESS [  1.402 s]
[INFO] Apache HBase - Resource Bundle ..................... SUCCESS [  0.360 s]
[INFO] Apache HBase - Annotations ......................... SUCCESS [  0.559 s]
[INFO] Apache HBase - Protocol ............................ SUCCESS [  4.241 s]
[INFO] Apache HBase - Common .............................. SUCCESS [  8.704 s]
[INFO] Apache HBase - Procedure ........................... SUCCESS [  1.771 s]
[INFO] Apache HBase - Client .............................. SUCCESS [  5.273 s]
[INFO] Apache HBase - Hadoop Compatibility ................ SUCCESS [  0.675 s]
[INFO] Apache HBase - Hadoop Two Compatibility ............ SUCCESS [  2.631 s]
[INFO] Apache HBase - Prefix Tree ......................... SUCCESS [  1.933 s]
[INFO] Apache HBase - Server .............................. SUCCESS [ 49.050 s]
[INFO] Apache HBase - Testing Util ........................ SUCCESS [  3.572 s]
[INFO] Apache HBase - Thrift .............................. SUCCESS [  5.567 s]
[INFO] Apache HBase - Rest ................................ SUCCESS [  3.178 s]
[INFO] Apache HBase - RSGroup ............................. SUCCESS [  3.122 s]
[INFO] Apache HBase - Shell ............................... SUCCESS [  2.456 s]
[INFO] Apache HBase - Integration Tests ................... SUCCESS [  6.965 s]
[INFO] Apache HBase - Examples ............................ SUCCESS [  4.034 s]
[INFO] Apache HBase - External Block Cache ................ SUCCESS [  2.061 s]
[INFO] Apache HBase - Spark ............................... SUCCESS [ 13.998 s]
[INFO] Apache HBase - Assembly ............................ SUCCESS [ 47.942 s]
[INFO] Apache HBase - Shaded .............................. SUCCESS [  0.124 s]
[INFO] Apache HBase - Shaded - Client ..................... SUCCESS [  1.056 s]
[INFO] Apache HBase - Shaded - Server ..................... SUCCESS [  1.408 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:36 min
[INFO] Finished at: 2017-06-24T09:35:04-07:00
[INFO] Final Memory: 106M/869M
[INFO] ------------------------------------------------------------------------

查看编译产生的结果文件

[root@nn1 hbase-1.2.0-cdh5.11.1]# ll hbase-assembly/target/
total 105628
drwxr-xr-x.   2 root root     4096 Jun 24 09:34 archive-tmp
drwxr-xr-x. 150 root root    12288 Jun 24 09:34 dependency
drwxr-xr-x.   2 root root    20480 Jun 24 09:34 dependency-maven-plugin-markers
drwxr-xr-x.   6 root root     4096 Jun 24 09:36 hbase-1.2.0-cdh5.11.1
-rw-r--r--.   1 root root 90163288 Jun 24 09:34 hbase-1.2.0-cdh5.11.1-bin.tar.gz
-rw-r--r--.   1 root root 17836216 Jun 24 09:35 hbase-1.2.0-cdh5.11.1-src.tar.gz
drwxr-xr-x.   3 root root     4096 Jun 24 08:43 maven-shared-archive-resources
-rw-r--r--.   1 root root    28465 Jun 24 09:34 NOTICE.aggregate
-rw-r--r--.   1 root root    83667 Jun 24 09:03 supplemental-models.xml
[root@nn1 hbase-1.2.0-cdh5.11.1]# tar zxvf hbase-assembly/target/hbase-1.2.0-cdh5.11.1-bin.tar.gz -C hbase-assembly/target/
[root@nn1 hbase-1.2.0-cdh5.11.1]# ll hbase-assembly/target/hbase-1.2.0-cdh5.11.1/
total 176
drwxr-xr-x. 4 root root   4096 Jun  1 10:06 bin
-rw-r--r--. 1 root root 105820 Jun  1 10:06 CHANGES.txt
drwxr-xr-x. 2 root root   4096 Jun  1 10:06 conf
drwxr-xr-x. 7 root root   4096 Jun 24 08:30 hbase-webapps
-rw-r--r--. 1 root root    261 Jun 24 09:34 LEGAL
drwxr-xr-x. 3 root root  12288 Jun 24 09:36 lib
-rw-r--r--. 1 root root  11357 Jun 24 09:34 LICENSE.txt
-rw-r--r--. 1 root root  28396 Jun 24 09:34 NOTICE.txt
-rw-r--r--. 1 root root   1477 Jun  1 10:06 README.txt


读后有收获可以支付宝请作者喝咖啡