- 预分区(重点)
- Rowkey设计(重点)
- In memory
- Max Version
- Compact&Split
- BulkLoading(重点)
Hbase的预分区
Rowkey设计(重点)rowkey的设计
In memory创建表的时候,可以通过HColumnDescriptor.setInMemory(true)将表放到 RegionServer的缓存中,保证在读取的时候被cache命中。
Max Version创建表的时候,可以通过HColumnDescriptor.setMaxVersions(int maxVersions)设置 表中数据的最大版本,如果只需要保存最新版本的数据,那么可以设置 setMaxVersions(1)。
Compact&Split在Hbase中,数据在更新时首先写入WAL 日志(HLog)和内存(MemStore)中, MemStore中的数据是排序的,当MemStore累计到一定阈值时,由单独的线程flush到磁盘上,成为一个StoreFile。与此同时, 系统会在zookeeper中记录一个redo point,表示这个时刻之前的变更已经持久化了
StoreFile是只读的,一旦创建后就不可以再修改。因此Hbase的更新其实是不断追加的 *** 作。当一个Store中的StoreFile达到一定的阈值后,就会进行一次合并(major compact),将对同一个key的修改合并到一起,形成一个大的StoreFile,当StoreFile的大小达到一定阈值后,又会对 StoreFile进行分割(split),等分为两个StoreFile。
BulkLoading(重点)bulkloading
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)