HBase2.1.3整合Hive3.1.2

相关博客

错误:org.apache.hbase.thirdparty.com.google.common.cache.CacheLoader的解决方案

hbase与hive集成

第一步:创建HBase和Hive环境变量

HBase2.1.3整合Hive3.1.2_第1张图片

第二步:将HBase中的jar包软链接到hive

ln -s $HBASE_HOME/lib/hbase-common-2.1.3.jar  $HIVE_HOME/lib/hbase-common-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-server-2.1.3.jar $HIVE_HOME/lib/hbase-server-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-client-2.1.3.jar $HIVE_HOME/lib/hbase-client-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-protocol-2.1.3.jar $HIVE_HOME/lib/hbase-protocol-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-it-2.1.3.jar $HIVE_HOME/lib/hbase-it-2.1.3.jar
ln -s $HBASE_HOME/lib/htrace-core-3.1.0-incubating.jar $HIVE_HOME/lib/htrace-core-3.1.0-incubating.jar
ln -s $HBASE_HOME/lib/hbase-hadoop2-compat-2.1.3.jar $HIVE_HOME/lib/hbase-hadoop2-compat-2.1.3.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-2.1.3.jar $HIVE_HOME/lib/hbase-hadoop-compat-2.1.3.jar

第三步:重新编译hive/lib目录下的hive-hbase-handler-3.1.1.jar文件并覆盖原来的

  1. 修改HiveHBaseTableSnapshotInputFormat.java类,将Base64.encodeBytes(proto.toByteArray())改为Bytes.toString(proto.toByteArray())
  2. 将HiveHBaseTableSnapshotInputFormat.class文件替换到hive-hbase-handler-3.1.1.jar中

我编译好的hive-hbase-handler-3.1.1.jar

第四步:在hive-site.xml中修改zookeeper的属性:

<property>
  <name>hive.zookeeper.quorum</name>
  <value>hcmaster,hcslave1,hcslave2</value>
</property>

示例一:建立Hive表的同时关联HBase表

创建Hive表的SQL语句

create table hive_hbase_dept (
deptno int,
dname string,
loc string 
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:dname,info:loc")
TBLPROPERTIES ("hbase.table.name" = "hbase_dept");

HBase2.1.3整合Hive3.1.2_第2张图片

查看Hive和HBase发现表创建成功

  • Hive
    在这里插入图片描述
  • HBase
    HBase2.1.3整合Hive3.1.2_第3张图片

hive中插入数据

因为是关联表,所以不能load,只能insert。
HBase2.1.3整合Hive3.1.2_第4张图片

查看

  • hive
    HBase2.1.3整合Hive3.1.2_第5张图片
  • hbase
    HBase2.1.3整合Hive3.1.2_第6张图片

Hive中创建外部表关联HBase中已经存在的表

创建外部表

HBase中已经存在hbase_dept

create external table hive_hbase_dept2 (
deptno int,
dname string,
loc string 
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:dname,info:loc")
TBLPROPERTIES ("hbase.table.name" = "hbase_dept");

HBase2.1.3整合Hive3.1.2_第7张图片

使用

HBase2.1.3整合Hive3.1.2_第8张图片

你可能感兴趣的:(#,Hive,#,HBase,HBase整合Hive,HBase2.1.3,Hive3.1.2)