hive删除hbase数据_Hive进阶:Hive通过外部表操作Hbase数据

本文介绍了如何通过Hive外部表来操作HBase中的数据,包括拷贝依赖包、创建HBase表、插入数据,以及在Hive中建立外部表并查询数据的过程。强调了Hive中映射字段与HBase字段大小写的一致性要求。
摘要由CSDN通过智能技术生成

概述:

HBase:

查询效率比较高,常为实时业务提供服务,但是其查询方式比较单一,只能通过row方式get单条数据,或者通过scan加过滤器的方式扫描数据表获取数据。

Hive:

hive用来存储结构化数据,常用来搭建数据仓库作为离线分析的数据存储,支持HQL操作,但是对于复杂HQL都会转化成mapreduce任务,执行比较慢。

有时候我们数据存在HBase中,但是需要通过sql语句来操作hbase表数据,我们一般使用Hive外部表操作HBase数据。

大体步骤如下:

1.拷贝依赖包

将Hive操作HBase依赖的几个包拷贝到Hive安装目录下的lib下(每个hive节点都要执行拷贝):

/usr/lib/hive/lib/zookeeper.jar;

/usr/lib/hive/lib/hbase.jar;

/usr/lib/hive/lib/hive-hbase-handler-X.X.X.jar

/usr/lib/hive/lib/guava-11.0.2.jar;

2.HBase操作

登录hbase shell控制台,新建hbase表ljs:student(ljs是命名空间,student是表名)

执行命令:

create_namespace 'ljs'

create 'ljs:student','info'

查看表结构:

!desc  'ljs:student'

向HBase表插入数据:

put 'ljs:student','1001','info:name','ljs1001'

put 'ljs:student','1001','info:age','21'

put 'ljs:student','1001','info:score','89'

put 'ljs:student','2001','info:name','ljs1002'

put 'ljs:student','2001','info:age','24'

put 'ljs:student','2001','info:score','78'

查看表数据:

3.Hive操作

执行/usr/hdp/2.6.3.0-235/hive/bin/hive登录到hive控制台

新建hive数据表:

create external table hive_student(user_no string,user_name string,user_age string,user_score string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties  ("hbase.columns.mapping" = ":key,info:name,info:age,info:score") tblproperties("hbase.table.name" = "ljs:student");

查询hive表,可查看hbase映射表中对应的数据:

至此Hive操作HBase表数据完成。

注意:

1.hive中建hbase映射表时,建表语句中关键字“hbase.columns.mapping”后面的对应映射字段要与HBase表字段大小写一致。否则可能映射失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值