zoukankan      html  css  js  c++  java
  • 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
    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/

  • 相关阅读:
    服务器键盘设置错误 完美解决
    windows 彻底删除360文件 360zipext.dll 等等
    VS2005智能设备中无法找到PInvoke DLL
    如何使用DotNet 2.0中的应用程序配置 Settings.settings
    维护应用程序状态(一):使用浏览器cookie
    NHibernate学习导航
    HTML基础(三):基本的HTML标签
    使用Cookie对象保存用户自定义设置
    ASP.NET2.0 个性化用户配置
    sealed修饰符的使用
  • 原文地址:https://www.cnblogs.com/luxianghao/p/6573817.html
Copyright © 2011-2022 走看看