为什么列族的数量越少越好?
-
在HBase中列,是在插入数据时产生,动态产生。因此如果有100个列,他们是一个列族还是两个列族,并没有什么区别,无非是在HDFS的存储的目录不同
-
列族过多,regionserver在初始化时,需要创建大量的store对象,每个store对象还需要初始化大量的memstore对象,占用大量的内存,要求集群配置高
-
memstore在flush时,只要一个store对象的memstore的大小超过了溢写的阈值(128M),所有store都会执行flush,因此列族越多,执行flush的概率越大。频繁的flush会占用集群大量的磁盘IO,造成小文件过多,为将来的compact带来难度