zoukankan      html  css  js  c++  java
  • HBase的架构原理

    HBase的详细架构图:

    架构的组件:

    (1)Master

      所有Region Server的管理者(表级别的管理),其实现类为HMaster,主要作用如下:

         对于表的操作:create, delete, alter;

       对于RegionServer 的操作:分配regions 到每个RegionServer,监控每个RegionServer的状态,负载均衡和故障转移。

    (2)zookeeper

       HBase 通过Zookeeper来做Master 的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。

    (3)Region Server

      Region Server为Region的管理者(数据级别的管理),其实现类为HRegionServer,主要作用如下:

      对于数据的操作:get, put, delete;

      对于Region的操作:splitRegion、compactRegion。

    (4)HDFS

      HDFS为HBase提供最终的底层数据存储服务,同时为HBase 提供高可用的支持。HBase中的数据最终都要存储到HDFS上。

    (5)StoreFile

      保存实际数据的物理文件,StoreFile 以HFile 的形式存储在HDFS上。每个Store 会有一个或多个StoreFile(HFile),数据在每个StoreFile 中都是有序的。

    (6)MemStore

      写缓存,由于HFile 中的数据要求是有序的,所以数据是先存储在MemStore中,排好序后,等到达刷写时机才会刷写到HFile,每次刷写都会形成一个新的HFile。

    (7)WAL

      由于数据要经MemStore 排序后才能刷写到HFile,但把数据保存在内存中会有很高的概率导致数据丢失,为了解决这个问题,数据会先写在一个叫做Write-Ahead logfile 的文件中,然后再写入MemStore 中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。

     

      Store其实就是代表的是表的列族,只不过在物理上叫Store,逻辑上成为列族。

      Region就是类似于表的概念,在HBase中它是一张表进行横向切分的切片,横跨多个列族。

      从HBase的结构图可以看出,用户Client并没有和Master直接相连,而是直接连接的zookeeper,zookeeper承担了一部分Master的功能,Client除了连接zookeeper还连接了RegionServer,所以即使Master挂掉了,用户客户端依旧可以完成对数据的读写操作。

  • 相关阅读:
    LR12_IE11报错,闪退
    loadrunner11无法启动IE9
    启动数据库失败
    测试代码
    python中的JSON(1)
    文件和异常(二)
    文件和异常(一)
    类(三)
    类(二)
    初识类(一)
  • 原文地址:https://www.cnblogs.com/yxym2016/p/13440550.html
Copyright © 2011-2022 走看看