文章作者: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
  1. 在启动的时候分配Region,在故障恢复(recovery)和负载(load balance)的时候重新分配Region
  2. 监控集群中所有的RegionServer实例(instance),监听来自Zookeeper的通知
  • 管理功能
  1. 提供新建、删除、更新表的接口

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架构的更多相关文章

  1. HBASE架构解析(二)

    http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...

  2. HBASE架构解析(一)

    http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官 ...

  3. HBase架构深度解析

    原文出处: DLevin(@雪地脚印_) 前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase A ...

  4. Hbase架构与原理

    Hbase架构与原理 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就 ...

  5. HBase轻松入门之HBase架构图解析

    2018-12-13 2018-12-20 本篇文章旨在针对初学者以我本人现阶段所掌握的知识就HBase的架构图中各模块作一个概念科普.不对文章内容的“绝对.完全正确性”负责. 1.开胃小菜 关于HB ...

  6. 深入了解HBASE架构(转)

    dd by zhj: 最近的工作需要跟HBase打交道,所以花时间把<HBase权威指南>粗略看了一遍,感觉不过瘾,又从网上找了几篇经典文章. 下面这篇就是很经典的文章,对HBase的架构 ...

  7. 深入HBase架构解析(二)【转】

    转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...

  8. 深入HBase架构解析(一)[转]

    前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Architecture,原本想翻译全文,然 ...

  9. 【转】HBase架构解析

    转载地址:http://www.blogjava.net/DLevin/archive/2015/08/22/426877.html HBase架构组成 HBase采用Master/Slave架构搭建 ...

  10. Hbase架构和读写流程

    转载自:http://www.cnblogs.com/muzili-ykt/p/muzili_ykt.html 在HBase读写时,相同Cell(RowKey/ColumnFamily/Column相 ...

随机推荐

  1. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  2. POJ2185(KMP)

    Milking Grid Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7896   Accepted: 3408 Desc ...

  3. gulp实时编译less,压缩合并requirejs模块文件

    gulp的使用命令简单,就几个,gulp的简单使用教材可以参考一点的gulp使用教材(http://www.ydcss.com/archives/18). 下面就简单的介绍这些命令如何互相配合的完成前 ...

  4. [转载]【虚拟化系列】VMware vSphere 5.1 虚拟机管理

    转载自:http://mabofeng.blog.51cto.com/2661587/1019497 在上一博文中我们安装了强大的VMware vCenter管理中心,通过VMware vSphere ...

  5. .Net程序员学用Oracle系列(11):系统函数(下)

    1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...

  6. windows 下odoo 不同版本安装运行问题

    在开发测试不同版本odoo时,总会遇到在同一浏览器下运行出错的状况.虽然可以把不同版本分属不同的端口,但是登录标识会入写用户本地浏览器cookie,由于cookie只匹配域名及路径但是不区分端口, 所 ...

  7. ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转

    ArcGIS制图表达Representation实战篇2-河流渐变与符号旋转 by 李远祥 上一章节主要是从实战中使用规则和几何效果,如何分解制图规则.本章主要还是通过一些特殊要求如河流线宽渐变和符号 ...

  8. 为什么Java可以跨平台,而其他语言不行

    你好 我是大福 你现在看的是大福笔记 今天复习了Java语言的概述 内容包括Java 语言的历史.语言特点及平台版本 JRE和JDK的区别 这篇文章的主题是总结下对Java语言特点中的跨平台原理. 在 ...

  9. 网络攻击技术开篇——SQL Injection

    本文转自: http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html 1.1.1 摘要 日前,国内最大的程序员社区CSDN网站的用户数据库 ...

  10. Codeforces Round #396 (Div. 2)

    C. Mahmoud and a Message time limit per test 2 seconds memory limit per test 256 megabytes input sta ...