菜鸟先飞之Hive与Hbase

本文介绍了Hive与Hbase的集成,包括Hive作为数据仓库和数据分析工具的特性,以及Hbase作为非关系型数据库的适用场景。重点讲述了HBase与Hive的集成使用,通过案例展示了如何在Hive中创建关联HBase的外部表并插入数据。此外,文章还深入探讨了HBase Region管理,包括Region的预拆分和手动拆分策略,以及Region拆分对性能的影响。
摘要由CSDN通过智能技术生成

一、Hive与Hbase的集成

1.1Hbase与Hive的对比

1、Hive

(1)数据仓库

Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方便使用 HQL 去管理查询。

(2)用于数据分析、清洗

Hive适用于离线的数据分析和清洗,延迟较高

(3)基于HDFS、MapReduce

Hive 存储的数据依旧在 DataNode 上,编写的 HQL 语句终将是转换为MapReduce 代码执行。

2、Hbase

(1)数据库是一种面向列存储的非关系型数据库。

(2)用于存储结构化和非结构化的数据适用于单表非关系型数据的存储,不适合做关联查询,类似 JOIN 等操作。 

(3)基于HDFS数据持久化存储的体现形式是 HFile,存放于 DataNode 中,被 ResionServer以 Region 的形式进行管理。

(4)延迟较低,接入在线业务使用面对大量的企业数据,HBase 可以直线单表大量数据的存储,同时提供了高效的数据访问速度。 

1.2HBase 与 Hive 集成使用(开发重点)

1.案例一 

目标:建立 Hive 表,关联 HBase 表,插入数据到 Hive 表的同时能够影响 HBase表。 

分步实现: 

(1)在 Hive 中创建表同时关联 HBase

ps:-- Hive 中只支持 select 和 insert,不支持 HBase 中的版本控制,在hive中创建的外部表的字段要与Hbase中的表名、列簇:字段名一一对应

-- 在 hive 中创建外部表 
create external table customer( 
name string, 
order_numb string,
order_date string,
addr_city string,
addr_state string) 
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
with serdeproperties 
("hbase.columns.mapping"=":key,order:numb,order:date,addr:city,addr:state") 
tblproperties("hbase.table.name" = "customer");

(2)向 hive 表中插入数据,在 hive 中执行如下语句。 

 insert into table customer values ('James','1121','2018-05-31','toronto','ON'); 

(3)在 HBase Shell 中查看表中的记录。

scan 'customer'

(4) 可以在 HBase 中插入数据,然后在 Hive 表中查看更新的数据。 <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值