简 介:HBase是谷歌BigData论文的一个代码实现,在大数据处理领域应用广泛。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。
关键词:大数据组件、HBase、NoSQL
一、HBase详细架构图
从上面的图可以看出,整个HBase组件是建立在HDFS的基础之上,利用zookeeper进行管理整个集群
集群中存在一个HMaster和多个HRegionServer,HMaster是用来进行与zookeeper进行通信,管理整个HRegionServer的负载均衡,调整HRegion的分配。
如果说当前的HMaster死掉之后,剩余的机器会进行抢夺机会,谁拿到了谁就会成为下一个HMaster。
二、组件
HLog:每个HRegionServer可以看到里面维护着一个HLog,HLog的作用就是说将一系列的写操作进行保存,如果某一时刻服务器宕机,我们可以再次读取HLog中的操作进行数据还原,重新将数据写回HDFS。
HRegion:它可以理解为每张表的一部分,因为HBase是用来存储大数据的,所以我们的表一定会很大,如果表过于大不便于操作,效率较低,所以需要将大表进行切分,切分成多个HRegion,可以说包含多个rowKey的数据。
Store:HBase是NoSQL数据库,它不像mysql这种有着强烈的列关系,它是以列族进行区分,每个列族下包含着多个列,可以说每个Store就代表着一个列族。
Mem Store:它是内存缓冲区,我们在像HBase中写入数据时,有时会发现数据不能够实时的写入HDFS中,但是此时是可以扫描到的,原因是此时数据被写入到内存,还没有被刷写到HDFS系统中,只有当Mem Store中的数据达到一定阈值时,才会触发向HDFS中写数据的事件。
StoreFile:上面说Mem Store会一定时机地刷写一次数据,那么每一次刷写就会形成一个StoreFile文件,刷写多次就会形成多个文件,而StoreFile的地层是以HFile进行存储。
文件,而StoreFile的地层是以HFile进行存储。
HFile:HFile是一种数据存储格式,StoreFile就是以该形式进行存储,它是一种以keyValue的形式进行存储。