Apache Hive编程指南(Hive和HBase不兼容问题)

当官方Hive发行版与目标平台的HBase组件不兼容时,通过源码编译是解决冲突的有效方式。本文介绍了如何下载Hive源码,修改pom.xml中HBase的版本号,然后在MAC OS或CentOS环境下编译,以生成兼容HBase的Hive版本,最后在编译目录找到编译好的二进制文件,完成版本兼容问题的解决。
摘要由CSDN通过智能技术生成

背景

首先,我们在下载官方的hive的发行版,很可能会出现发行版中预编译的hive与我们目标平台的其他组件出现不兼容,例如小编就会经常遇到hive在读取hbase的时候出现这样或者那样的问题,当然也有很多处理和解决的办法,例如通过各种论坛和帖子找需要替换jar包,然后进行替换即可,这种做法虽然最终也能解决但是太费神了,因此小编痛定思痛,觉得直接对hive的源码包进行更改,然后自己编译hive的安装包,这也是决绝版本冲突最直接有效的办法。

编译步骤

下载hive的对用版本的源码包apache-hive-1.2.2-src.tar.gz ,解压改源码包,然后打开根目录下的pom.xml文件,例如这里我们要解决hive和hbase兼容问题,我们平台的hbase用的是Hbase-1.4.13版本,因此用户只需要找到这个pom当中的hbase版本声明,修改成我们目标版本即可。推荐在MAC OS或者CentOS上编译,不要在Windows上编译!

...
 <hbase.hadoop2.version>1.4.13</hbase.hadoop2.version>
 ...

然后我们在根目录上执行mvn -Phadoop-2 -Pdist -DskipTests -Dmaven.javadoc.skip=true clean package命令,系统就会自动的编译出我们需要的兼容hbase版本的hive发行版。这里需要友情提醒,由于编译源码是一个非常枯燥且漫长的过程,为了加速maven的编译,大家需要将自己的maven的镜像修改为阿里云的maven仓库。

bogon:apache-hive-1.2.2-src jiangzz$ mvn -Phadoop-2 -Pdist -DskipTests -Dmaven.javadoc.skip=true clean package
....
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Hive 1.2.2:
[INFO] 
[INFO] Hive ............................................... SUCCESS [01:01 min]
[INFO] Hive Shims Common .................................. SUCCESS [01:19 min]
[INFO] Hive Shims 0.20S ................................... SUCCESS [ 12.034 s]
[INFO] Hive Shims 0.23 .................................... SUCCESS [01:03 min]
[INFO] Hive Shims Scheduler ..........
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值