列族数对Flush的影响
在Hbase中,调用API往对应的表中插入数据是会写到MenStore的。而MenStore是一种内存结构。每个列族对应一个MenStore和多个HFile。
列族越多,会导致内存中存在越多的MrenStore。存储在MenStore中的数据在满足一定条件下将会促发Flush操作,这样每次Flush的时候都会在磁盘中生成一个HFile文件,并且,Flush操作涉及到一定IO操作,也会阻塞客户端的读写操作。
这样会导致越多的列族最终持久化到磁盘的HFile越多。然而,当前的Flush操作是Region级别的,也就是说,Region中某个MenStore被Flush,同一个Region的其他Menstore也会进行Flush操作。当表有很多列族,而且列族之间数据不均匀,比如一个列族数据有100w条,另一个列族只有10w条数据,这样,Flush操作的时候就会有更多的小文件产生。
原文:https://www.cnblogs.com/ww5566/p/11361979.html