文章目录
HBase架构图
HBase的架构图如下,HBase也是要依赖zookeeper的,所以安装HBase之前要先把zookeeper安装好。HBase是一个分布式的非关系型数据库,数据是存储在HDFS上面,一个节点就是一个HRegionServer,可以有多个HRegionServer,但是只有Active的HMaster,可以有多个Standby的HMaster(也就是备用节点),下面就来看看每个角色的作用吧!
- Client:用户可以通过客户端向HBase发出增删改查等请求。
- Zookeeper:Zookeeper负责监听HRegionServer,一个HRegionServer就会在Zookeeper创建一个znode,如果HRegionServer掉线了,Zookeeper会通知HMaster。
- HRegionServer:负责存储数据,相应客户端的请求。一个HRegionServer包含一个HLog和多个Region,一个Region又包括多个Store,一个Store又包括多个一个memoryStore和多个StoreFile。
下面用一次写数据来具体描述一下他们的作用,用户在客户端提交写请求,这个请求会先发送到Zookeeper,zookpeer会通过数据感知,找到对应的region,为了防止数据丢失,写操作会先写入到HLogs预写日志中,然后再写入到内存memoryStore中,memoryStore默认只有128M,当数据量差弄过128M时,就会出发flush,把memoryStore内存中的数据dump到storeFile文件中,当storeFile达到一定量是会出发compact机制,合并小的storeFile到HDFS的HFile中。当Region中的数据量达到10GB,就会出发split机制,将Region一分为二,但是两个Region都还是在同一台机器上。