无题

Hbase

1
2
1.我们在设计列族的时候,可以把经常读取的列存储到一个列族中,不经常读取的列放到另一个列族中。
这样我们在读取部分列的数据的时候,就只需要读取对应列族文件中的数据,提高读取效率。
1
2
3
4
5
6
7
在HBase中,数据块大小和MemStore大小是两个不同的概念,它们具有不同的功能和调整目的。

数据块大小主要影响HBase中的数据存储和访问性能。数据块由多个cell(key-value对)集合组成,每个数据块的大小在创建表的列族时可以指定。数据块大小的设定影响数据块索引的大小,数据块越小,索引越大,从而占用更大内存空间。因此,在随机查找性能和数据块索引内存占用之间需要权衡。如果需要更好的随机查找性能,可以将数据块设置为较小的值;而如果需要更好的序列扫描性能,则可以考虑增大数据块的大小。

而MemStore是HBase中用于保存修改数据(即key-value对)的内存结构。当MemStore的大小达到一个阈值(默认是128MB)时,MemStore会被Flush到文件(即StoreFile),以释放内存空间。MemStore的大小设置主要影响HBase的写入性能和内存使用。如果MemStore太小,可能导致频繁的Flush操作,影响写入性能;如果MemStore太大,则可能消耗过多的内存资源。

因此,hbase数据块大小和memstore大小不一样,它们是HBase中两个不同的参数,需要根据具体的应用场景和性能需求进行独立调整。