分布式数据库HBase-Region服务器、Store、HLog工作原理和读写数据_第1页
分布式数据库HBase-Region服务器、Store、HLog工作原理和读写数据_第2页
分布式数据库HBase-Region服务器、Store、HLog工作原理和读写数据_第3页
分布式数据库HBase-Region服务器、Store、HLog工作原理和读写数据_第4页
分布式数据库HBase-Region服务器、Store、HLog工作原理和读写数据_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式数据库HBase——Region服务器、Store、HLog工作原理和读写数据北京信息职业技术学院|朱立本文来自:大数据技术原理与应用——概念、存储、处理、分析与应用作者:林子雨出版社:人民邮电出版社版权说明若作者对本资料使用持有异议,请及时联系本网站,我们将在第一时间妥善处理。2 Region服务器工作原理Region服务器向HDFS文件系统中读写数据Region服务器工作原理1.用户读写数据过程

用户写入数据时,被分配到相应Region服务器去执行用户数据首先被写入到MemStore和Hlog中只有当操作写入Hlog之后,commit()调用才会将其返回给客户端当用户读取数据时,Region服务器会首先访问MemStore缓存,如果找不到,再去磁盘上面的StoreFile中寻找Region服务器工作原理2.缓存的刷新系统会周期性地把MemStore缓存里的内容刷写到磁盘的StoreFile文件中,清空缓存,并在Hlog里面写入一个标记每次刷写都生成一个新的StoreFile文件,因此,每个Store包含多个StoreFile文件每个Region服务器都有一个自己的HLog文件,每次启动都检查该文件,确认最近一次执行缓存刷新操作之后是否发生新的写入操作;如果发现更新,则先写入MemStore,再刷写到StoreFile,最后删除旧的Hlog文件,开始为用户提供服务Region服务器工作原理3.StoreFile的合并每次刷写都生成一个新的StoreFile,数量太多,影响查找速度调用Spact()把多个合并成一个合并操作比较耗费资源,只有数量达到一个阈值才启动合并Store工作原理Store是Region服务器的核心多个StoreFile合并成一个单个StoreFile过大时,又触发分裂操作,1个父Region被分裂成两个子RegionStoreFile的合并和分裂过程HLog工作原理分布式环境必须要考虑系统出错。HBase采用HLog保证系统恢复HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(WriteAheadLog)用户更新数据必须首先写入日志后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷写到磁盘HLog工作原理Zookeeper会实时监测每个Region服务器的状态,当某个Region服务器发生故障时,Zookeeper会通知MasterMaster首先会处理该故障Region服务器上面遗留的HLog文件,这个遗留的HLog文件中包含了来自多个Region对象的日志记录系统会根据每条日志记录所属的Region对象对HLog数据进行拆分,分别放到相应Region对象的目录下,然后,再将失效的Region重新分配到可用的Region服务器中,并把与该Region对象相关的HLog日志记录也发送给相应的Region服务器HLog工作原理Region服务器领取到分配给自己的Region对象以及与之相关的HLog日志记录以后,会重新做一遍日志记录中的各种操作,把日志记录中的数据写入到MemStore缓存中,然后,刷新到磁盘的StoreFile文件中,完成数据恢复共用日志优点:提高对表的写操作性能;缺点:恢复时需要分拆日志读写数据HBase使用HMemStore和HStoreFile存储对表的更新。数据在更新时,首先写入HLog和内存(HMemStore)中,HMemStore中的数据是排序的,当HMemStore累计到一定阈值时,就会创建一个新的HMemStore,并且将老的HMemStore添加到flush队列,由单独的线程flush到磁盘上,成为一个HStoreFile。与此同时,系统会在Zookeeper中记录一个检查点,表示这个时刻前的变更已持久化了。读写数据当系统出现意外时,可能导致内存(HMemStore)中的数据丢失,此时使用HLog来恢复检查点之后的数据。HStoreFile是只读的,一旦创建后就不可以再修改。因此HBase的更新其实是不断追加的操作。当一个HStore中的HStoreFile达到一定的阈值后,就会进行一次合并,将对同一个key的修改合并到一起,形成一个大的HStoreFile,当HStoreFile的大小达到一定阈值后,又会对HStoreFile进行分裂,等分为两个HStoreFile。读写数据由于对表的更新是不断追加的,处理读请求时,需要访问HStore中全部的HStoreFile和HMemStore,将他们按照行键进行合并,由于HStoreFile和HMemStore都是经过排序的,并且HStoreFile带有内存中索引,合并的过程还是比较快的。读写数据写请求处理过程具体如下:client向HRegionServer提交写请求;HRegionServer找到目标HRegion;HRegion

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论