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相 ...
随机推荐
- 如何在鼠标hover时改变标注的样式
如何在鼠标hover时改变标注的样式? ---------------- 教程 ----------------------- 首先创建1张地图 //初始化地图对象,加载地图 var map ...
- Form开发:字段关系-消息-快速编码-参数和系统变量
1.字段关系 清除依赖字段:在挂LOV的名称字段的WHEN-VALIDATE-ITEM调用:app_field.clear_dependent_fields 设置字段依赖:在主字段的WHEN ...
- 源码(05) -- java.util.AbstractCollection<E>
java.util.AbstractCollection<E> 源码分析(JDK1.7) ------------------------------------------------- ...
- 源码(06) -- java.util.AbstractList<E>
java.util.AbstractList<E> 源码分析(JDK1.7) ------------------------------------------------------- ...
- <C++Primer>第四版 阅读笔记 第一部分 “基本语言”
之前阅读时没有及时总结,现在慢慢补上. 第1章 快速入门 main 函数在很多方面都比较特别,其中最重要的是每个C++程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显示调用的函数 ...
- Android EclipseIDE技巧
一.Eclipse配置使用 1.显示行号(Winodw-->Preferences-->General-->Editors-->Text Editors-->勾上右侧的S ...
- centos安装UCenter 和 UCenter_Home
1.搭建lamp环境yum –y install httpd php php-mysql mysql mysql-server 2启动服务 3.设置服务开机自动启动 4.上传UCEN ...
- [Hadoop] - TaskTracker源码分析
在Hadoop1.x版本中,MapReduce采用master/salve架构,TaskTracker就是这个架构中的slave部分.TaskTracker以服务组件的形式存在,负责任务的执行和任务状 ...
- scala IDE错误:..is cross-compiled with incompatible version....
下午scala工程出现如下错误: 搜索这个问题,没有找到答案. 直接去官网查看http://scala-ide.org/docs/current-user-doc/faq/index.html,发现了 ...
- POJ 2914 Minimum Cut Stoer Wagner 算法 无向图最小割
POJ 2914 题意:给定一个无向图 小于500节点,和边的权值,求最小的代价将图拆为两个联通分量. Stoer Wagner算法: (1)用类似prim算法的方法求"最大生成树" ...