大数据之hbase的写数据过程详解

带着问题来寻找答案:
1.HBASE的读写过程就是HBASE的寻址过程
2.如何快速的寻找到地址?
3.为什么hbase可以快速的查询 写入数据?
4.Hbase的数据模型:底层存储的数据到底是怎么样的过程 ?
5.Hbase的数据模型设计:数据文件最终存储在hdfs的结构是怎么样的?并不是key value
客户端发起写数据请求
构建Put对象:一个Put对象代表一行数据记录,可以添加多个列的数据。
如上例所示, RowKey为“012005000201” ,包含3个列:name,gender,address。
Put or PutList?
HBase提供了两个主要的写数据接口,一个可以写入单行数据,即Put接口,另一个可以批量写入多行数据,即PutList接口。事实上, Put仅是PutList的一种特殊情形。因此,后面的流程介绍仅仅涉及PutList。
找region:
如何快速的找到region?
答:找mata表中的metaregion
我们如何快速的找到我的表的元数据信息在meta表中哪个metaregion的位置?
答:zookeeper
Meta表的路由信息:这个表有哪些region 每一个region在哪些位置上
这里写图片描述
不论是读还是写,首先是找region
Metaregion
Userregion
数据
为什么写入数据需要找region而不是直接追加?
mysql:insert操作 新数据直接追加
mysl的寻址过程:一张表对应一个文件,找到表就是找到文件,新数据直接追加在末尾

Habse:
在一张表中,region管理一定范围内的数 rowkey按字典排序
第一个region的start key是空不是0
一张表的不同region可以放到不同的主机中去

Put:数据根据不同的rowkey,插入到不同的region中
当数据量很大时,hbase:meta表也会被拆分成多个 region,称之为metaregion,也可能会被放到不同的主机上,这些metaregion存储的就是某一些表的路由信息,也就是:userregion,region所属的regionserve信息

Regionserver内部按照什么来进行分配数据:rowkey字典排序

数据分组:这里写图片描述
任务交给regionserver之后,regionser做什么?
数据进入的时候,并不是一条一条的进入的,有可能是很多条,比如list一次来10w条数据,
这么大的数据,拿到数据以后,有2种

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值