RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Hive和HBase怎么整合

这篇文章将为大家详细讲解有关Hive和HBase怎么整合,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

浑江ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

Hive和Hbase有各自不同的特征:hive是高延迟、结构化和面向分析的,hbase是低延迟、非结构化和面向编程的。Hive数据仓库在hadoop上是高延迟的。Hive集成Hbase就是为了使用hbase的一些特性。

Hive继承HBase可以有效利用HBase数据库的存储特性,如行更新和列索引等。在集成的过程中注意维持HBase  jar包的一致性。Hive集成HBase需要在Hive表和HBase表之间建立映射关系,也就是Hive表的列和列类型与HBase表的列族及列限定词建立关联。每一个在Hive表中的域都存在与HBase中,而在Hive表中不需要包含所有HBase中的列。HBase中的rowkey对应到Hive中为选择一个域使用  :key 来对应,列族(cf:)映射到Hive中的其他所有域,列为(cf:cq)。

下面来简单实战下:

创建HBase表

create 'user1',{NAME => 'info',VERSIONS => 1}

向user表中插入一些数据

put 'user1','1','info:name','zhangsan' put 'user1','1','info:age','25' put 'user1','2','info:name','lisi' put 'user1','2','info:age','22' put 'user1','3','info:name','wangswu' put 'user1','3','info:age','21'

使用scan命令来查看下user表中的数据

scan 'user';

结果如下

ROW COLUMN+CELL

1 column=info:age, timestamp=1476773051604, value=25

1 column=info:name, timestamp=1476773046344, value=zhangsan

2 column=info:age, timestamp=1476773051685, value=22

2 column=info:name, timestamp=1476773051661, value=lisi

3 column=info:age, timestamp=1476773052632, value=21

3 column=info:name, timestamp=1476773051709, value=wangswu

3 row(s) in 0.0610 seconds

创建Hive中与HBase中对应的表

SET hbase.zookeeper.quorum=hadoop001; SET zookeeper.znode.parent=/hbase; ADD jar /opt/bigdata/hive-1.2.1-bin/lib/hive-hbase-handler-1.2.1.jar; // user1表 CREATE EXTERNAL TABLE user1 ( rowkey string, info map ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:") TBLPROPERTIES ("hbase.table.name" = "user1"); // user2表 CREATE EXTERNAL TABLE user2 ( rowkey string, name string, age int ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:age") TBLPROPERTIES ("hbase.table.name" = "user2");

查询user1,user2表数据

查询user1表数据

select * from user1;

结果如下

OK 1       {"age":"25","name":"zhangsan"} 2       {"age":"22","name":"lisi"} 3       {"age":"21","name":"wangswu"} Time taken: 0.467 seconds, Fetched: 3 row(s)

查询user2表数据

select * from user2;

结果如下:

OK  1 zhangsan 25  2 lisi 22  3 wangswu 21  Time taken: 0.087 seconds, Fetched: 3 row(s)

hive插入数据到hbase

INSERT INTO TABLE user1 SELECT '4' AS rowkey, map('name','lijin','age','22') AS info from dual limit 1;

关于“Hive和HBase怎么整合”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


名称栏目:Hive和HBase怎么整合
浏览路径:http://scyingshan.cn/article/jcgpdh.html