写数据流程
客户端发出命令 put "a","rk1001" 将命令传给zookeeper,找到对应的region.在往region里面写数据的同时还会往日志(WALS)里面写,日志在hbase和数据对应的存储空间上,日志再传到hdfs的/hbase/WALS.
在写数据的时候,随着数据写入的增加,hbase会刷新(flush)一下,每次刷新会出现一个storefile,这是一个逻辑的位置,并不真实存在,对应的是hdfs中的hfile
flush将内存数据到hdfs中,对应几个内存数据刷写时机
1)当内存数据达到128M
2)整个RegionServer机器的总内存达到阈值(在一个RegionServer中会同时开启多线程同时写入不同数据,每一个写入过程都会开辟自己的内存,当总的内存累计起来就会用以达到阈值).
3)当记录的日志的此时达到阈值(和第一条对应,一个是大小,一个是次数)
4)手动刷新