hbase读写数据流程

1.hbase写数据速度极高,吞吐量极大,主要归因于写入数据是先写入memstore内存的操作(当然这里还有wal顺序写日志防止机器崩溃),只有等到内存满了。才会批量顺序flush数据到磁盘,这样就避免了磁盘的随机io,整个写入流程如下:
client --> zk -->root表所在的rs服务器–>通过root表查找到meta元数据表后根据要写入的数据所在的位置从meta元数据表中查找到写入数据对应的rs服务器–>数据写入rs服务器的memstore内存

2.hbase读性能: 由于hbase读取数据的时候需要从多个有序的文件(内存memstore+磁盘hfile)从查找数据,所以hbase的读数据性能比较有限,不过hbase内部做了一些优化,如使用blockcache缓存hfile的数据,以及合并多个小的hfile小文件成一个大的hfile文件等,读流程如下:
client --> zk -->root表所在的rs服务器–>通过root表查找到meta元数据表后根据要读取的数据所在的位置从meta元数据表中查找到对应数据所在的rs服务器–>从rs服务器的region中(memstore+多个hfile文件)结合中读取数据
3.删除数据是hbase只是做了一个删除的标志,真正的数据还存储在磁盘上,只是读取数据返回的时候过滤掉被删除的数据,数据真正删除是在compact多个小文件成一个大文件的时候.

参考文章:
https://www.cnblogs.com/sabertobih/p/14001268.html

你可能感兴趣的:(大数据,hbase,hbase)