Hbase列族个数建议设在1~3之间

列族数对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操作的时候就会有更多的小文件产生。

posted @ 2019-08-16 09:38  www555  阅读(2182)  评论(0编辑  收藏  举报