HBase的三大组件
安全生产教育培训内容HBase的三⼤组件
·HBase的实现包括三个主要的功能组件:
–(1)库函数:链接到每个客户端
–(2)⼀个Master主服务器
–(3)许多个Region服务器
·主服务器Master负责管理和维护HBase表的分区信息,维护Region服务器列表,分配Region,负载均衡
怎样下载歌曲到手机上>鬼神世界·Region服务器负责存储和维护分配给⾃⼰的Region,处理来⾃客户端的读写请求
·客户端并不是直接从Master主服务器上读取数据,⽽是在获得Region的存储位置信息后,直接从Region服务器上读取数据·客户端并不依赖Master,⽽是通过Zookeeper来获得Region位置信息,⼤多数客户端甚⾄从来不和Master通信,这种设计⽅式使得Master负载很⼩
⼀、Master服务器:
·
主服务器Master主要负责表和Region的管理⼯作:
–管理⽤户对表的增加、删除、修改、查询等操作
–实现不同Region服务器之间的负载均衡
企业愿景使命–在Region分裂或合并后,负责重新调整Region的分布
–对发⽣故障失效的Region服务器上的Region进⾏迁移
⼆、Region服务器
Region服务器是HBase中最核⼼的模块,负责维护分配给⾃⼰的Region,并响应⽤户的读写请求
Region的定位:
·元数据表,⼜名.META.表,存储了Region和Region服务器的映射关系
·当HBase表很⼤时, .META.表也会被分裂成多个Region
·根数据表,⼜名-ROOT-表,记录所有元数据的具体位置
·
-ROOT-表只有唯⼀⼀个Region,名字是在程序中被写死的
·Zookeeper⽂件记录了-ROOT-表的位置
好看的动画电影排行榜
客户端访问数据时的“三级寻址”
·为了加速寻址,客户端会缓存位置信息,同时,需要解决缓存失效问题
·寻址过程客户端只需要询问Zookeeper服务器,不需要连接Master服务器
HBase的三层结构中各层次的名称和作⽤:
层次名称作⽤
第⼀层Zookeeper⽂件记录了-ROOT-表的位置信息
第⼆层-ROOT-表记录了.META.表的Region位置信息
-ROOT-表只能有⼀个Region。通过-ROOT-表,就可以访问.META.表中的数据
第三层.META.表记录了⽤户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有⽤户数据表的Region位置信息
1.数据读写的过程:
·⽤户写⼊数据时,被分配到相应Region服务器去执⾏
·⽤户数据⾸先被写⼊到MemStore和Hlog中
·只有当操作写⼊Hlog之后,commit()调⽤才会将其返回给客户端
·当⽤户读取数据时,Region服务器会⾸先访问MemStore缓存,如果不到,再去磁盘上⾯的StoreFile中寻
2. 缓存的刷新:
·系统会周期性地把MemStore缓存⾥的内容刷写到磁盘的StoreFile⽂件中,清空缓存,并在Hlog⾥⾯写⼊⼀个标记
·每次刷写都⽣成⼀个新的StoreFile⽂件,因此,每个Store包含多个StoreFile⽂件
·每个Region服务器都有⼀个⾃⼰的HLog⽂件,每次启动都检查该⽂件,确认最近⼀次执⾏缓存刷新操作之后是否发⽣新的写⼊操作;如果发现更新,则先写⼊MemStore,再刷写到StoreFile,最后删除旧的Hlog⽂件,开始为⽤户提供服务
3. StoreFile的合并
中国国庆节的习俗·每次刷写都⽣成⼀个新的StoreFile,数量太多,影响查速度
·调⽤Storepact()把多个合并成⼀个
·合并操作⽐较耗费资源,只有数量达到⼀个阈值才启动合并
3.1 Store⼯作原作原理
·Store是Region服务器的核⼼
·多个StoreFile合并成⼀个
·单个StoreFile过⼤时,⼜触发分裂操作,1个⽗Region被分裂成两个⼦Region
HBase的⽇志系统HLog:
· 分布式环境必须要考虑系统出错。 HBase 采⽤ HLog 保证系统恢复
· HBase 系统为每个 Region 服务器配置了⼀个 HLog ⽂件,它是⼀种预写式⽇志( Write Ahead Log )
· ⽤户更新数据必须⾸先写⼊⽇志后,才能写⼊ MemStore 缓存,并且,直到 MemStore 缓存内容对应的⽇志已经写⼊
磁盘,该缓存内容才能被刷写到磁盘
HLog的⼯作原理:
·Zookeeper 会实时监测每个 Region 服务器的状态,当某个 Region 服务器发⽣故障时, Zookeeper 会通知 Master
· Master ⾸先会处理该故障 Region 服务器上⾯遗留的 HLog ⽂件,这个遗留的 HLog ⽂件中包含了来⾃多个 Region 对象
的⽇志记录
· 系统会根据每条⽇志记录所属的 Region 对象对 HLog 数据进⾏拆分,分别放到相应 Region 对象的⽬录下,再 将 失效
的 Region 重新分配到可⽤的 Region 服务器中,并把与该 Region 对象相关的 HLog ⽇志记录也发送给相应 Region 服务器
· Region 服务器领取到分配给⾃⼰的 Region 对象以及与之相关的 HLog ⽇志记录以后,会重新做⼀遍⽇志记录中的各
种 操作,把⽇志记录中的数据写⼊到 MemStore 缓存中,然后,刷新到磁盘的 StoreFile ⽂件中,完成数据恢复
· 共⽤⽇志优点:提⾼对表的写操作性能;缺点:恢复时需要分拆⽇志

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。