原文链接:http://blog.csdn.net/mm_bit/article/details/51304233

-----------------------------------

HMaster是Hbase主/从集群架构中的中央节点。通常一个HBase集群存在多个HMaster节点,其中一个为Active Master,其余为Backup Master.

Hbase每时每刻只有一个hmaster主服务器程序在运行,hmaster将region分配给region服务器,协调region服务器的负载并维护集群的状态。Hmaster不会对外提供数据服务,而是由region服务器负责所有regions的读写请求及操作。

  由于hmaster只维护表和region的元数据,而不参与数据的输入/输出过程,hmaster失效仅仅会导致所有的元数据无法被修改,但表的数据读/写还是可以正常进行的。

HMaster的作用:

  • 为Region server分配region
  • 负责Region server的负载均衡
  • 发现失效的Region server并重新分配其上的region
  • HDFS上的垃圾文件回收
  • 处理schema更新请求

HRegionServer作用:

  • 维护master分配给他的region,处理对这些region的io请求
  • 负责切分正在运行过程中变的过大的region
可以看到,client访问hbase上的数据并不需要master参与(寻址访问zookeeper和region server,数据读写访问region server),master仅仅维护table和region的元数据信息(table的元数据信息保存在zookeeper上),负载很低。
注意:master上存放的元数据是region的存储位置信息,但是在用户读写数据时,都是先写到region server的WAL日志中,之后由region server负责将其刷新到HFile中,即region中。所以,用户并不直接接触region,无需知道region的位置,所以其并不从master处获得什么位置元数据,而只需要从zookeeper中获取region server的位置元数据,之后便直接和region server通信。
HRegionServer存取一个子表时,会创建一个HRegion对象,然后对表的每个列族创建一个Store实例,每个Store都会有一个MemStore和0个或多个StoreFile与之对应,每个StoreFile都会对应一个HFile, HFile就是实际的存储文件。因此,一个HRegion有多少个列族就有多少个Store。
一个HRegionServer会有多个HRegion和一个HLog。
当HRegionServer意外终止后,HMaster会通过Zookeeper感知到。

Zookeeper作用在于:

1、hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线)。

2、hmaster启动时候会将hbase系统表-ROOT- 加载到 zookeeper cluster,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。

zookeeper是hbase集群的"协调器"。由于zookeeper的轻量级特性,因此我们可以将多个hbase集群共用一个zookeeper集群,以节约大量的服务器。多个hbase集群共用zookeeper集群的方法是使用同一组ip,修改不同hbase集群的"zookeeper.znode.parent"属性,让它们使用不同的根目录。比如cluster1使用/hbase-c1,cluster2使用/hbase-c2,等等。

-------------

更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html

HBase中的HMaster、HRegionServer、Zookeeper相关推荐

  1. ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用

    ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用 - 文章 - 伯乐在线 /* # The number of milliseconds of each tick tickTim ...

  2. 什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么

    原文链接 什么是Zookeeper,Zookeeper的作用是什么,它与NameNode及HMaster如何协作?在没有接触Zookeeper的同学,或许会有这些疑问.这里给大家总结一下. 一.什么是 ...

  3. hbase 和 zookeeper建立连接_我对Hbase的一些理解——HMaster与Zookeeper之间的交互机制...

    Hbase依赖于zookeeper进行集群管理,如HMaster的高可用,HMaster对HRegionServer的管理,看看Hbase与zookeeper的之间交互的工作机制.之前写过HMaste ...

  4. zookeeper在Hbase中的作用

    zk在Hbase中的作用 我们知道Hbase集群中主要组件有Hmaster,RegionServer 和 Zookeeper.Hbase强依赖于zk. 在HBase中,ZooKeeper在 Maste ...

  5. HBase中Zookeeper核心配置信息解读

    目录 一.HBase与Zookeeper的关系 1.1 HA管理 1.2 RegionServer管理 1.3 元数据Region 1.4 Region管理 1.5 预写日志恢复 1.6 hbase- ...

  6. hbase中为何不能向表中插入数据_大数据HBase理论实操面试题

    1.HBase的特点是什么? 1)大:一个表可以有数十亿行,上百万列: 2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列: 3)面向列: ...

  7. hbase中的region

    HBase 基本概念 1.region region 是部分数据,所以是所有数据的一个自己,但region包括完整的行,所以region 是行为单位 表的一个子集. 每个region 有三个主要要素: ...

  8. hbase中为何不能向表中插入数据_Hbase快速入门(超精炼总结)

    基本概念: HBase是列簇式Key-Value存储系统,构建在HDFS之上的.支持随机插入和删除. 总结Hbase的架构核心,就两个字"有序" . 磁盘的读写,随机与顺序,相差3 ...

  9. HBase中RegionServer宕机恢复介绍

    HBase采用类LSM的架构体系,数据写入并没有直接写入数据文件,而是会先写入缓存(Memstore),在满足一定条件下缓存数据再会异步刷新到硬盘.为了防止数据写入缓存之后不会因为RegionServ ...

最新文章

  1. python logger.debug_Python logger模块
  2. redhat7配置本地源
  3. python虚拟环境中文件分部_Python之虚拟环境管理
  4. jmeter从mysql取值_Jmeter获取数据库值并作为参数请求(转载)
  5. spring里的controller之间的跳转
  6. 企业微信添加机器人播报天气
  7. linux消息队列的内核限制
  8. free git online
  9. 微软6月补丁日修复7个0day:6个已遭利用且其中1个是为 APT 服务的商用exploit
  10. 浅谈管理系统操作日志设计(附操作日志类)
  11. Grep 用法和正则表达式(一)
  12. UVA-11491 Erasing and Winning (单调队列)
  13. 中断按键c语言程序设计,C语言程序设计:INT0及INT1中断计数
  14. 写的网页标题乱码,怎么办?
  15. Android系统签名以及生成keystore秘钥
  16. 轨迹规划-二次规划QP
  17. 文献解读-物理信息深度学习(PINN)
  18. 上焦如雾实际上是指何项作用_广西中医药大学赛恩斯新医药学院《中医基础理论》期考试卷卷16...
  19. ShardingSphere 5.2.1 发布|新增系统库、强制分片路由、一致性校验
  20. Bert入门:使用Bert运行MRPC的demo成功案例

热门文章

  1. linux 如何查看属性,linux 下查看系统属性
  2. c语言小明今年16岁,C语言1.爷爷对小明说:我现在的年龄是你的7倍,过几年是你的6倍,再过若干年就分别是你的5倍,4倍,3倍,2倍.你知道爷爷和小明现在的年龄吗?...
  3. 三张表有重复字段_什么?搞不定Kafka重复消费?
  4. Linux编程考前测试题
  5. hive转16进制unhex_Java 进制的转换
  6. java基础知识点_JAVA基础知识
  7. oracle p l,使用P.A.L制作便携软件 (一) 基本原理 | 么么哒拥有者
  8. c++ 二次开发 良田高拍仪_六枝特良田LYV-850加工中心导轨配套防护罩日常维修
  9. shell判断字符串是否为数字
  10. SpringBoot基础篇(一):Spring Boot入门