实现HBase与Hive之间数据互通互导

栏目: 数据库 · 发布时间: 6年前

内容简介:今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!

今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。

我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!

https://edu.hellobi.com/course/283

实现HBase与Hive之间数据互通互导

首先不了解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'

实现HBase与Hive之间数据互通互导

插入几条数据:

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与Hive之间数据互通互导

看一下HBase中刚刚建好的数据表:

实现HBase与Hive之间数据互通互导

三、关于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表

实现HBase与Hive之间数据互通互导

五、检验一下二者数据互通互道:

Hive端查询:

select * from students;

实现HBase与Hive之间数据互通互导

HBase端插入数据:

put 'students','12003','info:name','Mathew'

实现HBase与Hive之间数据互通互导

Hive端数据查询:

select * from students;

实现HBase与Hive之间数据互通互导

Hive端数据数据插入:

insert into table hbase_to_hive_students values('12004','bill','25','Shandong','Qingdao');

实现HBase与Hive之间数据互通互导

HBase端数据查询:

scan'students'

实现HBase与Hive之间数据互通互导

OK,做到这里,大家可以发现,无论在Hive里面insert还是在HBase里面put插入,两端是都能看到新数据的,这也就完成了Hive与HBase间的数据互通互导。

实现HBase与Hive之间数据互通互导 实现HBase与Hive之间数据互通互导

本文由马修 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上所述就是小编给大家介绍的《实现HBase与Hive之间数据互通互导》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

追踪Linux TCP/IP代码运行

追踪Linux TCP/IP代码运行

秦健 / 北京航空航天大学出版社 / 2010-4-1 / 69.00元

本书以应用程序为线索,详细描述了数据包在协议栈的分段、重组、发送、接收过程,同时分析了路由的初始化和设置过程,主要包括socket应用程序、 TCP/IP协议、路由、通知链、邻居子系统等内容。全书涵盖了协议栈的全部知识点,对于广大的读者来说这是一本极其难得的技术资料。同时,书中论述了网络设备的工作原理,解释了RTL8169和嵌入式CS8900、DM9000网卡设备的核心过程。一起来看看 《追踪Linux TCP/IP代码运行》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具