HBase架构
文章作者:luxianghao
文章来源:http://www.cnblogs.com/luxianghao/p/6573817.html 转载请注明,谢谢合作。
免责声明:文章内容仅代表个人观点,如有不当,欢迎指正。
---
HBase组件
HBase是包含3种类型server的主备模式架构:
- RegionServer提供数据的读写功能,操作数据的时候,client(客户端)直接和RegionServer交互
- Master处理Region的分配(assignment),增删表(DDL: create, delete tables)
- Zookeeper维持着整个集群的状态
Hadoop DataNode存储着RegionServer需要的数据,所有的HBase数据都存储在HDFS文件里,RegionServer一般会和HDFS
DataNode放在一起,这能够使RegionServer就近的使用数据(locality)。HBase的数据是就近写入的,再次使用这些数据的时
候也是就近的,但是当region被移走的时候,就不是就近使用数据了,等到compaction的时候,这种情况会得到改善。
HDFS NameNode保存了所有组成文件的数据块的元信息(metadata)。
REGIONS
HBase根据行健(row key)的范围把表水平的分割成很多Region。一个Region包含着从这个Region的起始建(start key)到结
束键(end key)的所有行。Region会被分配到集群中的不同节点,这些节点被称作RegionServer,提供数据的读写功能。一个
RegionServer大约包括1000个Region。
HBASE HMASTER
Region的分配,DDL(增删表)等操作都是由HBase Master来处理的。
Master的功能如下:
- 协调RegionServer
- 在启动的时候分配Region,在故障恢复(recovery)和负载(load balance)的时候重新分配Region
- 监控集群中所有的RegionServer实例(instance),监听来自Zookeeper的通知
- 管理功能
- 提供新建、删除、更新表的接口
Zookeeper
HBase用Zookeeper作为一个分布式的协调服务,来维持集群中server的状态。Zookeeper记录着哪些server是存活的而且可用的,
并且会发出server不可用的通知。Zookeeper通常用3个或者5个服务器来达成一致,从而保证共享的一致的状态。
这些组件是怎么在一起协同工作的?
Zookeeper用来为分布式系统协调共享的一致的状态信息。RegionServer和active HMaster用session和Zookeeper保持连接。
Zookeeper为active session通过心跳(heartbeat)的方式维持着临时的节点。
每一个RegionServer都会在Zookeeper上创建一个临时的节点。HMaster通过监控这些节点来找出可用的RegionServer,同样
的,通过这些节点信息,HMaster也能判断哪些RegionServer不可用。多个(一般是两个)HMaster会在创建临时节点的时候出
现竞争。第一个在Zookeeper上创建节点的HMaster会成为唯一活跃(active)的master。这个活跃的HMaster会发送心跳信息给
Zookeeper,非活跃状态的HMaster会监听活跃HMaster不可用的通知。
如果RegionServer或者活跃的HMaster发送心跳信息失败,相关的session就会过期,相关的临时节点也会被删除。关于删除的更
改会被通知给监听者。活跃的HMaster会监听RegionServer,从而恢复那些宕掉的Region。非活跃状态的HMaster会监听活跃的
HMaster是否可用,如果后者宕掉,那么前者就会从非活跃状态变成活跃状态。
待续。。。
参考文档:
https://mapr.com/blog/in-depth-look-hbase-architecture/
HBase架构的更多相关文章
- HBASE架构解析(二)
http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...
- HBASE架构解析(一)
http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官 ...
- HBase架构深度解析
原文出处: DLevin(@雪地脚印_) 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase A ...
- Hbase架构与原理
Hbase架构与原理 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就 ...
- HBase轻松入门之HBase架构图解析
2018-12-13 2018-12-20 本篇文章旨在针对初学者以我本人现阶段所掌握的知识就HBase的架构图中各模块作一个概念科普.不对文章内容的“绝对.完全正确性”负责. 1.开胃小菜 关于HB ...
- 深入了解HBASE架构(转)
dd by zhj: 最近的工作需要跟HBase打交道,所以花时间把<HBase权威指南>粗略看了一遍,感觉不过瘾,又从网上找了几篇经典文章. 下面这篇就是很经典的文章,对HBase的架构 ...
- 深入HBase架构解析(二)【转】
转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...
- 深入HBase架构解析(一)[转]
前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Architecture,原本想翻译全文,然 ...
- 【转】HBase架构解析
转载地址:http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html HBase架构组成 HBase采用Master/Slave架构搭建 ...
- Hbase架构和读写流程
转载自:http://www.cnblogs.com/muzili-ykt/p/muzili_ykt.html 在HBase读写时,相同Cell(RowKey/ColumnFamily/Column相 ...
随机推荐
- 一个案例深入Python中的__new__和__init__
准备 在Python中,一切皆对象. 既然一切皆对象,那么类也是对象,我们暂且称之为 类对象.来个简单例子(本篇文章的所有案例都是运行在Python3.4中): class foo(): pass p ...
- HTML5和CSS3
一.HTML5 HTML5 是 HTML 标准的最新演进版本. 这个术语代表了两个不同的概念:它是一个新的 HTML 语言版本包含了新的元素,属性和行为,同时包含了一系列可以被用来让 Web 站点和应 ...
- Express之托管静态文件
中间件express.static 我们使用express初始化一个目录的时候,会在app.js中看到一大推的app.use. 其中一个主要的中间件是express.static(4.0版本依旧保留的 ...
- MongoDB基础之六 索引
一 . 索引概述和基本操作 1. 索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建索引2. 在mongodb中,索引可以按字段升序/降序来创建,便于排序3. 默认是用btree来组 ...
- seq语句随笔
1.UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果. 2.UNION ALL只是简单的将两个结果合并后就返回.这样,如果返回的两个结 ...
- windows 下 多版本nodejs切换 nvmw
以下教程不适用于nodejs v0.6.5及以下版本 nvmw 下载到本地 Git clone https://github.com/hakobera/nvmw.git 2.设置环境PATH 添加如上 ...
- (二) 从Angular1到Angular2需要的预备知识
1. TypeScript语法与ES6新特性 写惯了jQ的话突然从ES5跳到ES6,又是个变形的ES6(TypeScript),学习成本确实不低.不过笔者也是从ng1直接上手ng2,对与很多新特性的积 ...
- ArcGIS许可启动问题
前段时间,由于360常常删除重要文件终于发生在我身上.不得已换了电脑管家,清理后再次打开License Server Administrator时,发现启动项怎么也点不动了.而打开服务管理器,却发现A ...
- jQuery_第五章_事件和动画
Jquery中的事件与动画 一.window.onload和$(document).read()的细微差别 (1)执行时机 window.onload:所有元素(包括元素的所有关联文件)完全加载到浏览 ...
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏(最短路)
这个= =一看就是最短路了= = PS:最近有点懒 = = 刚才看到一道平衡树的裸题还嫌懒不去写= =算了等刷完这堆水题再去理= = CODE: #include<cstdio>#incl ...