文章目录
HBase角色
HMaster
功能:
- 监控RegionServer
- 处理RegionServer故障转移
- 处理元数据变更
- 处理region的分配或移除
- 空闲时对数据进行负载均衡
- 通过zookeeper发布自己的位置给客户端
RegionServer
- 负责存储Hbase的实际数据
- 处理分配给它的region
- 刷新缓存到HDFS上
- 维护HLog
- 执行压缩
- 负责处理Region分片
组件
1) Write-Ahead logs
Hbase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定),但是把数据保存在内存中可能有更高概率引起数据丢失,为了解决这个问题,数据会写在一个Write-Ahead logfile 文件中,然后写入内存,所以在系统出现故障时,数据可以通过这个日志文件重建
2) HFile
3) Store
HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个列族
4) MemStore
内存存储,位于内存中,用来保存当前数据操作,所以当数据保存在WAL中之后,RegionServer会在内存中存储键值对
5) Region
Hbase表分片,Hbase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有不同的region
HBase的架构
HBase 一种是作为存储的分布式文件系统,另一种是作为数据处理模型的 MR 框架。因为日常开发人员比较熟练的是结构化的数据进行处理,但是在 HDFS 直接存储的文件往往不具有结构化,所以催生出了 HBase 在 HDFS 上的操作。如果需要查询数据,只需要通过键值便可以成功访问.
虽然HBase内置有zookeeper,但是一般会有其他zookeeper集群来监管master和regionServer,zookeeper通过选举,保证在任何时候,集群中只有一个活跃的HMaster,HMaster与HRegionServer启动时会向zookeeper注册,存储所有HRegion的寻址入口,实时监控HRegionserver的上线和下线信息,并实时通知给HMaster,存储Hbase的schema和table元数据,默认情况下,Hbase管理zookeeper实例,zookeeper的引入使得HMaster不再是单点故障,一般情况下会启动两个HMaster,非Active的HMaster会定期和Active HMaster通信以获取其最新状态,从而保证它实时更新,如果启动了多个HMaster反而增加了Active HMaster的负担
一个RegionServer可以包含多个HRegion,每个RegionServer维护一个HLog,和多个HFiles以及对应的MemStore,RegionServer运行在Datanode上,数量可以与Datanode数量一致
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。