hbase2.1.3与hive-3.1.1集成

搜了一下网上,没有hive版本3.1.1与hbase版本2.1.3版本的集成,这里记录一下集成过程

一、版本选择

    刚开始我使用的是hive-1.2.2版本与hbase-2.1.3版本,添加各种jar包都没用。后来有说2个版本需要集成需要重新编译hive-hbase-handler-1.2.2.jar,集成可以参考https://blog.csdn.net/qq_28652401/article/details/83509571这个博客。我把hive-1.2.2对应的lib下面的jar与hbase-2.1.3对应的lib下的jar导入了工程,发现需要修改的源码比较多,放弃了。然后我分别下载了hive-2.3.4与hive-3.1.1,发现hive-3.1.1使用的hbase是2.0.0的,跟我需要使用的hbase-2.1.3比较接近,所以决定编译hive-hbase-handler-3.1.1.jar.事实也发现修改的地方也很好,就修改HiveHBaseTableSnapshotInputFormat.java这个类即可,将Base64.encodeBytes(proto.toByteArray())改为Bytes.toString(proto.toByteArray())(PS:这里修改)

将HiveHBaseTableSnapshotInputFormat.class文件替换到hive-hbase-handler-3.1.1.jar中。

二、集成jar包

1、将hive-3.1.1中hbase开头的jar删除,从hbase-2.1.3的lib下面复制你删除的jar对应的2.1.3版本过去即可,如下图


hbase2.1.3与hive-3.1.1集成_第1张图片

2、hive-hbase-handler-3.1.1.jar

覆盖我们自己修改之后的hive-hbase-handler-3.1.1.jar。其实只要将hbase对应的jar替换过去,hive中已经可以查看hbase的数据了(通过命令创建对应的表),hive-hbase-handler-3.1.1.jar不覆盖也行,最好还是将上面那个jar覆盖一下


3、我修改的hive-hbase-handler-3.1.1.jar下载

https://pan.baidu.com/s/1N4NGsOAzlv1WuS-Ohp7JQA

提取码:08fu

你可能感兴趣的:(hbase2.1.3与hive-3.1.1集成)