HBase架构

7 篇文章 0 订阅
3 篇文章 0 订阅

首先摆一个架构图

这里写图片描述

主要包含的方面是

  1. HDFS 因为数据是保存在HDFS上的HBase内存满了之后就会将内存中的数据写入到HDFS上.也就是说除了内存之外的数据全部保存在HDFS上
  2. Client:
    1. 与HBase进行读写操作
    2. 可以有多个Client来访问HBase
  3. ZooKeeper
    1. 客户端是与ZooKeeper进行交互的并不是直接与HMaster进行交互的ZooKeeper中存储的信息是非常重要的比如:
      1. 保证集群中只有一个HMaster,以及当前的Master是哪个,管理着哪些RegionServer
      2. 监控RegionServer的上下线,并实时通知Master
      3. HMaster
      4. 为RegionServer分配Region,
      5. RegionServer负载均衡
      6. 发现某一个RegionServer失效,则会把该RegionServer上的Region分配到其它的RegionServer上
        • HBase中可能会有多个Master但是整个集群只有一个Master可用,当一个Master挂掉.则通过Zookeeper选举一个Master,所以这里不会出现单点故障
      7. RegionServer:
      8. 维护Region,处理Region的IO请求
      9. RegionServer负责切分在运行过程中变得过大的Region
        • 负责 存储真正的数据;
        • 一个RegionServer中管理多个Region
      10. Region
      11. 按行对RowKey对应的数据进行拆分
      12. 一个Region中存储的是多个Store
      13. 每一个Store对应着一个ColumnFamily
      14. 数据先存储在MemStore中.
      15. 当MemStore中的数据达到一个阈值之后.
      16. 将数据放到StoreFile里面,以HFile的方式通过HDFS Client存放在DataNode上
      17. 最终数据是以HFile的方式存储在HDFS上面的
      18. Client
      19. 通过ZooKeeper来与HMaster进行交互
      20. HLog
      21. 记录操作记录,为了容错处理.
        • 数据丢失,可以回滚

HBase是依赖于ZooKeeper的,防止单点故障
1. ZooKeeper是外置的(推荐)
1. 因为HDFS等一些东西都需要ZooKeeper进行主备份的切换.
2. 同理既然已经有ZooKeeper则使用一个就可以了
2. HBase内置的

总结

  1. Client发起请求读写,HM通过Zk进行选举
  2. HMaster管理多个RegionServer的上下线,负载均衡等
  3. RegionServer管理多个Region
  4. 一个Region由多个Store组成
  5. 一个Store对应一个ColumnFamily
  6. Store中的数据首先存放在MemoryStore中
  7. 达到一定阈值会把MemoryStore中的数据写到StoreFile中
  8. StoreFile最终以HFile的方式写入到HDFS之上
  9. Client的每次操作都会以Log的方式记录,方便以后数据的回滚.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值