内容简介:今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!
今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。
我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!
https://edu.hellobi.com/course/283
首先不了解HBase的同学可以看一下我之前写过的一片博文:
《白话解说:SQL与NoSQL》 https://ask.hellobi.com/blog/Matthew112/12341
一、那么看完之后我们先来简单了解一下HBase如何存放数据及对应语法:
HBase 建一张学生表,Row Key是学生编号,两个column family分别为基本信息(info)、地址(address)。
1.行键:决定一行数据。
2.列簇:每个列簇可以有多个列成员(course:Math,course:English),以类似于K-V的形式存储数据。
3.建表语句:create 'table name','column name01','column name02',...,'column nameXX'。
4.插入数据:put 'table name','row key','column name:','value'
二、接下来我们再HBase里面进行实操,建表插数:
建立一张表:
create 'students','info','address'
插入几条数据:
put 'students','12001','info:name','max'
put 'students','12001','info:age','20'
put 'students','12001','address:province','Liaoning'
put 'students','12001','address:city','Dalian'
put 'students','12002','info:name','leo'
put 'students','12002','info:age','21'
put 'students','12002','address:province','Hebei'
put 'students','12002','address:city','Guojizhuang'
看一下HBase中刚刚建好的数据表:
三、关于HBase的题外话:
HBase查询数据的语法对于一个 SQL 使用者来说简直就是折磨,在随后的HBase课程中我会向大家详细介绍其两种查询数据的方法及二者的区别:put、scan。
毕竟HBase才是真正意义上的数据库(存储处理海量数据的NoSQL),Hive可以理解为Hadoop的SQL编程接口,敬请关注我的后续HBase课程吧。
四、建立一章Hive表,实现其与HBase数据互通互导:
CREATE EXTERNAL TABLE hbase_to_hive_students(key string, name string,age string,province string,city string)-- key是hbase的rowkey, 各个字段是hbase中的quailiter
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' -- 使用的类
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:age,address:province,address:city") -- 字段映射关系
TBLPROPERTIES ("hbase.table.name" = "students"); -- 映射的HBase表
五、检验一下二者数据互通互道:
Hive端查询:
select * from students;
HBase端插入数据:
put 'students','12003','info:name','Mathew'
Hive端数据查询:
select * from students;
Hive端数据数据插入:
insert into table hbase_to_hive_students values('12004','bill','25','Shandong','Qingdao');
HBase端数据查询:
scan'students'
OK,做到这里,大家可以发现,无论在Hive里面insert还是在HBase里面put插入,两端是都能看到新数据的,这也就完成了Hive与HBase间的数据互通互导。
本文由马修 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
以上所述就是小编给大家介绍的《实现HBase与Hive之间数据互通互导》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 办公环境下 kubernetes 网络互通方案
- RSA加解密,Java和C#互通
- 柏贞尧:如何建设校园市场联盟?需强化互联互通
- 动态路由实现OSPF和RIP协议实现全网互连互通
- Mirth Connect 互联互通 第五章 查询发送者通道
- 整合ucenter,实现discuz与python或者nodejs网站互通
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
追踪Linux TCP/IP代码运行
秦健 / 北京航空航天大学出版社 / 2010-4-1 / 69.00元
本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括socket应用程序、 TCP/IP协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程。一起来看看 《追踪Linux TCP/IP代码运行》 这本书的介绍吧!