搜了一下網(wǎng)上藻治,沒(méi)有hive版本3.1.1與hbase版本2.1.3版本的集成哑了,這里記錄一下集成過(guò)程
一、版本選擇
? ? 剛開(kāi)始我使用的是hive-1.2.2版本與hbase-2.1.3版本瑟捣,添加各種jar包都沒(méi)用。后來(lái)有說(shuō)2個(gè)版本需要集成需要重新編譯hive-hbase-handler-1.2.2.jar,集成可以參考https://blog.csdn.net/qq_28652401/article/details/83509571這個(gè)博客新锈。我把hive-1.2.2對(duì)應(yīng)的lib下面的jar與hbase-2.1.3對(duì)應(yīng)的lib下的jar導(dǎo)入了工程甲脏,發(fā)現(xiàn)需要修改的源碼比較多,放棄了。然后我分別下載了hive-2.3.4與hive-3.1.1块请,發(fā)現(xiàn)hive-3.1.1使用的hbase是2.0.0的娜氏,跟我需要使用的hbase-2.1.3比較接近,所以決定編譯hive-hbase-handler-3.1.1.jar.事實(shí)也發(fā)現(xiàn)修改的地方也很好墩新,就修改HiveHBaseTableSnapshotInputFormat.java這個(gè)類即可贸弥,將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開(kāi)頭的jar刪除,從hbase-2.1.3的lib下面復(fù)制你刪除的jar對(duì)應(yīng)的2.1.3版本過(guò)去即可臣疑,如下圖
2盔憨、hive-hbase-handler-3.1.1.jar
覆蓋我們自己修改之后的hive-hbase-handler-3.1.1.jar。其實(shí)只要將hbase對(duì)應(yīng)的jar替換過(guò)去讯沈,hive中已經(jīng)可以查看hbase的數(shù)據(jù)了(通過(guò)命令創(chuàng)建對(duì)應(yīng)的表)郁岩,hive-hbase-handler-3.1.1.jar不覆蓋也行,最好還是將上面那個(gè)jar覆蓋一下
3缺狠、我修改的hive-hbase-handler-3.1.1.jar下載
https://pan.baidu.com/s/1N4NGsOAzlv1WuS-Ohp7JQA
提取碼:08fu