- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hbase读写数据流程
查询数据的原理:
第一次查询数据的整体过程是:
1.client访问zk,查找-ROOT-表,获取.META.表信息
2.从.META.表查找,获取存放数据的region信息(找到region sever地址)
3.最后通过RegionServer获取查找的数据。
4.以后查询就直接在内存中查。
-ROOT-和.META.是HBase的两张内置表,HBase用它们来存贮Region的分布情况以及每个Region的详细信息。
META表
RowKey由三部分组成:TableName, StartKey 和 TimeStamp。
RowKey存储的内容我们称之为Region的Name。将组成RowKey的三个部分用逗号连接就构成了整个RowKey,这里TimeStamp使用十进制的数字字符串来表示的。例如:
Table1,RK10000Family:info,info里面包含三个Column:regioninfo, server, serverstartcode。
其中regioninfo就是Region的详细信息,包括StartKey, EndKey 以及每个Family的信息等等。server存储的就是管理这个Region的RegionServer的地址。所以当Region被拆分、合并或者重新分配的时候,都需要来修改这张表的内容。
META存放了太多region信息可能太大,就会被分成多个region的,所以用相同结构的ROOT表就来管理META表的region。META表管理的是实际创建的表的region信息,ROOT表管理的是META表的region信息。
所以,具体流程就是client---zookeeper---root----meta---region sever这个顺序。
两种查询操作
HBase的查询操作主要主要包括两种Get和Scan。但是,HBase内部没有任何索引文件支持直接访问某个特定的行或列,它最小的访问单元是Hfile中的一个block,为了找到要求的数据,RegionSever和底层Store实例必须加载哪些可能包含该数据的Block,然后进行扫描,其实本身就是Scan的操作过程,换句话说,Get本质上就是一个Scan,是一个从Start Row到Start Row+1的Scan。
流程总结:
对于用户的一个表比如Blog,可能包括数据多达亿级,该表的数据可以分布在多个HRegion,而每个HRegion保存表的某一段数据,UserTable(1)--HRegion(*)对于多个的HRegion则有HRegion Server来维护。每个HRegion唯一对应一个HRegion Server通过HRegion Server才能够访问对应的HRegion。
而一个HRegion从物理上分为如下几个部分,HMemCache(内存缓存),HLog(日志)[其实是一个RS共享一个HLog],HStore(持久化存储)。
三:HBase的数据操作流程
a:读数据
优先从HMemcache中读取,如果没有读到就从HStore中读取。
当然这里需要关注:读、写同步的问题,HBase如何解决,还有第一个客户端读取数据从HStore读取后,是否会加载到HMemCache中;后续的客户端,读取时直接从HMemCache中读取,以及MemCache中数据的过期化算法。
在 HBase中,所有的存储文件都被划分成了若干个小存储块,这些小存储块在get或scan操作时会加载到内存中。 这个参数的默认大小是64K。(可配置),HBase顺序地读取一个数据块到内存缓存中,其读取相邻的数据时就可以在内存中读取而不需要从磁盘中再次读取,有效地减少了磁盘I/O的次数。这个参数默认为TRUE,这意味着每次读取的块都会缓存到内存中。但是,如果用户顺序读取某个特定的列族,最好将这个属性设置为 FALSE,从而禁止使用缓存快。上面这样描述的原因:如果我们访问特定的列族,但是我们还是启用了这个功能,这个时候我们的机制会把我们其它不需要的列族的数据也加载到了内存中,增加了我们的负担。
Create ‘mytable’, {NAME= ’colfam1’, BLOCKCACHE= ‘fasle’}
b:写数据
HBase写入数据会写到HMemcache和Hlog中,HMemcache建立缓存,Hlog同步Hmemcache
和Hstore的事务日志,发起Flush Cache时数据持久化到Hstore中,并清空HMemecache。
此处需要关注:
HBase 写数据,首先写入Memcache,并计入Log中,最后写入HStore中,如果在写入HStore是发生系统异常,就可以从Log中恢复数据,重新写入HStore
您可能关注的文档
最近下载
- 登革热诊疗方案(2024年版).pdf VIP
- 人教版PEP小学英语六年级上册第一单元测试卷.pdf VIP
- 《装配式装修标准化模块化设计 》课件——模块七:装配式装修卫浴部品体系设计.ppt VIP
- 《全装饰住宅部品集成技术》课件——模块六:集成厨房部品体系设计装配式装修.pptx VIP
- 破晓剧本(红色剧目).docx VIP
- 《装配式装修标准化模块化设计 》课件——模块六:集成厨房部品体系设计装配式装修.ppt VIP
- 国际投资(第六版)课件 SolMcL_6e_ch10.ppt VIP
- 《装配式建筑装饰装修》习题-04收纳系统设计.docx VIP
- 装配式建筑装饰装修-标准化.pptx VIP
- 常用电子管参数及脚位5.doc VIP
文档评论(0)