Hive整合HBase(操作HBase中的数据)
Hive整合HBase(操作HBase中的数据)
# Hive整合HBase,必须建立外部表
#在Hive建立外部表
create external table students_hbase
(
id string,
name string,
age string,
gender string,
clazz string
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' #HBase提供的类
with serdeproperties ("hbase.columns.mapping" = " #添加属性:列的映射
:key, #映射Hive中的id(相当于rowkey)
info:name, #映射Hive中的name
info:age, #映射Hive中的age
info:gender, #映射Hive中的gender
info:clazz #映射Hive中的clazz
")
tblproperties("hbase.table.name" = "default:stu"); #设计表名
通过映射,将HBase中表stu
中的数据映射到了Hive中,通过Hive可以操控HBase中的数据
hive> select * from students_hbase limit 10;
OK
1500100001 施笑槐 22 女 文科六班
1500100002 吕金鹏 24 男 文科六班
1500100003 单乐蕊 22 女 理科六班
1500100004 葛德曜 24 男 理科三班
1500100005 宣谷芹 22 女 理科五班
1500100006 边昂雄 21 男 理科二班
1500100007 尚孤风 23 女 文科六班
1500100008 符半双 22 女 理科六班
1500100009 沈德昌 21 男 理科一班
1500100010 羿彦昌 23 男 理科六班
Time taken: 0.881 seconds, Fetched: 10 row(s)
hive> select clazz,count(id) from students_hbase group by clazz;
文科一班 72
文科三班 94
文科二班 87
文科五班 84
文科六班 104
文科四班 81
理科一班 78
理科三班 68
理科二班 79
理科五班 70
理科六班 91
理科四班 91
Time taken: 68.874 seconds, Fetched: 12 row(s)
进入HBase命令栏
#获取一条数据
hbase(main):003:0> get 'stu','1500100005'
COLUMN CELL
info:age timestamp=1646051646554, value=22
info:clazz timestamp=1646051646554, value=\xE7\x90\x86\xE7\xA7\x91\xE4\xBA\x94\xE7\x8F\xAD info:gender timestamp=1646051646554, value=\xE5\xA5\xB3
info:name timestamp=1646051646554, value=\xE5\xAE\xA3\xE8\xB0\xB7\xE8\x8A\xB9
1 row(s) in 0.6960 seconds
通过映射,将HBase中表stu
中的数据映射到了Hive中,两边的数据是同步的,
如果在Hive或者HBase中修改数据,映射的数据也随之修改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!