HBase Minor&Major Compaction 解析
来源:互联网 发布:防伪码生成算法php 编辑:程序博客网 时间:2024/06/05 18:18
众所周知,Apache HBase是一个分布式的基于于读性能优化的列式存储,读性能的优化来自于每个列簇对应一个文件。HBase最初思想来源于Google文件系统。
一个列簇对应一个文件的情况并不保证这样,尤其是在HBase频繁写的时候,因此HBase需要一种机制把HFiles合并以减少最大磁盘寻址开销以提高读性能。这个过程称为compaction。
Compaction有两方式:major compaction和minor compaction。
Minor Compactions:合并一系列小文件为一个大文件,合并的文件数目是可以配置的,也可以配置minor compaction的频率。Minor compactions十分重要,如果没有minor compactions,读固定的行需要很大磁盘读开销,造成性能问题。
Major Compactions:读取一个Region下面的所有Store files并写入到一个Store file。
每个HBase表有:
1 一或多个列簇:列分组,不同列在物理上隔离
2 一或多个region:类似于shards,代表一个行集
每个HBase表的每个列簇在一个region下面都有一个store,包括:
1 MemStore - 用于存储临时的修改的一个内存空间
2 0或多个Store files - 当MemStore填充满后会被创建,也称为HFiles
这些Store files都是不可变的,在每个MemStore flush的时候HBase会创建一个新的文件。Compaction的作用就是把一个Region下面的Store files合并成更少的Store files从而优化性能。
Minor compactions不会做任何删除动作,只是把一些小文件合并为更大的文件。只有Major compactions才会有删除的动作。除此之外,还有更多的compaction机制,在此不作详述。
如果是要合并所有的文件,推荐使用Major compactions,因为除了可以做Minor compactions能做的合并之外,还会删除无用的数据。
使用以下命令手动触发major compaction
major_compact "table_name"
当HBase积累很多HFile时而不做compaction,可以获得更好的写性能。相反,如果通知HBase做compaction,读性能则会更好。
HBase可以指定什么时候做compaction并指定最大HFiles文件个数来确保可以实现不错的读性能。
通常情况下,flush和compaction操作可以同时进行。
- HBase Minor&Major Compaction 解析
- HBase Compaction解析
- HBase Compaction
- HBase compaction
- hbase中compaction流程
- 详解HBase Compaction
- 详解HBase Compaction
- 详解HBase Compaction
- hbase 之 compaction
- HBase StoreFile Compaction
- HBase Compaction流程
- HBase Compaction(1)
- HBase Compaction(2)
- hbase compaction 简单介绍
- HBase compaction 分析
- 关于major.minor错误
- Unsupported major.minor version
- minor.major version 详解
- 初识Hadoop
- Java基础语法
- SQL语言的四大功能
- WebView的详细介绍
- JAVA 转换时间格式以及比较时间大小
- HBase Minor&Major Compaction 解析
- AndroidImageSlider实现广告轮播条
- 线程
- Xcode 删除PP文件
- Button 属性
- java http post模板(json传参)
- React Native之AsyncStorage
- LeetCode 62. Unique Paths
- Java中8种基本数据类型及其默认值