概览

HBase主要处理两种文件:一种是预写日志(Write-Ahead Log,WAL),另一种是实际的数据文件。这两种文件主要由HRegionServer管理。在某些情况下,HMaster也可以进行一些底层的文件操作。当存储数据到HDFS中时,用户可能注意到实际的数据文件会被切分成更小的块。也正是这一点,用户可以配置系统来更好地处理较大或较小的文件。

一个基本的流程是客户端首先联系ZooKeeper子集群(quorum)查找行键。上述过程是通过ZooKeeper获取含有-ROOT-的region服务器名(主机名)来完成的。通过含有-ROOT-的region服务器可以查询到含有.META.表中对应的region服务器名,其中包括请求的行键信息。这两处的主要内容都被缓存下来了,并且都只查询一次。最终,通过查询.META.服务器来获取客户端查询的行键数据所在region的服务器名。

一旦知道了数据的实际位置,即region的位置,HBase会缓存这次查询的信息,同时直接联系管理实际数据的HRegionServer。所以,之后客户端可以通过缓存信息很好的定位所需的数据位置,而不用再次查找.META.表。

启动HBase时,HMaster负责将所有region分配到每个HRegion Server上,其中也包括特别的-ROOT-和.META.表。

HRegionServer负责打开region,并创建HRegion实例。当HRegion被打开后,它会为每个表的HColumnFamily创建一个Store实例,每个列族对应一个Store。每个Store实例包含一个或多个StoreFile实例,它们是实际数据存储文件HFile的轻量级封装。每个Store还有其对应的一个MemStore,一个HRegionServer分享了一个HLog实例。

最新文章

  1. 拓扑排序 --- hdu 4948 : Kingdom
  2. iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework
  3. 第二百零二天 how can I 坚持
  4. Com进程通信(Delphi2007)
  5. (转)如何将ecshop首页主广告位的flash轮播替换为js轮播
  6. linux搭建php
  7. XML文档的PHP程序查询代码
  8. Linux 定时任务不生效的问题
  9. angular路由守卫
  10. 了解tomcat的server.xml文件
  11. Java入门:基础算法之二进制转换为十进制
  12. windows 上安装冷门python模块
  13. [HNOI2018]排列
  14. 电脑黑屏,提示信息:windows 无法验证此文件的数字签名。
  15. 【动态规划】Part1
  16. 13.3SolrCloud集群使用手册之Zookeeper指令
  17. SQL游标操作每隔5分钟时间段数据统计信息
  18. 收集前端UI框架 持续更新中....
  19. Python登录,输入三次密码
  20. MyEclipse中关于JRE System Library、Web App Libraries的疑惑

热门文章

  1. 《从零开始学Swift》学习笔记(Day 14)——字符串的插入、删除和替换
  2. 《从零开始学Swift》学习笔记(Day 8)——小小常量、变量大作用
  3. 关于org.apache.shiro.SecurityUtils.getSubject().getSession()
  4. CSS3边框border-radius
  5. dbUtils 原理
  6. Docker介绍及优缺点对比分析
  7. document write & close
  8. Python通过fork的方式防止僵尸进程
  9. android密码显示和隐藏
  10. 010-spring事务管理