图解HBase--大数据平台技能栈
假如HBase开启了replication,当replication执行完一个HLog的时辰,会删除Zookeeper上的对应HLog节点,在HLog被移动到/hbase/oldWALs目次后,HBase每隔hbase.master.cleaner.interval(默认60秒)时刻会去搜查/hbase/oldWALs目次下的全部HLog,确认对应的Zookeeper的HLog节点是否被删除,假如Zookeeper上不存在对应的HLog节点,那么久直接删除对应的HLog。 hbase.master.logcleaner.ttl(默认10分钟)这个参数用来节制HLog在/hbase/oldWALs目次保存的最长时刻。 MemStore刷盘 为了进步HBase的写入机能,当写哀求写入MemStore后,不会当即刷盘,而是会比及必然的时辰再举办刷盘操纵。 产生MemStore刷盘场景: 1. 全局内存节制 当整个RegionServer中全部MemStore占用的内存到达阈值的时辰,会触发刷盘的操纵。 2. MemStore到达上限 当MemStore占用内存的巨细到达hbase.hregion.memstore.flush.size的值的时辰会触发刷盘,默认128M。 3. RegionServer的HLog数目到达上限 假如HLog太多的话,会导致妨碍规复的时刻过长,因此HBase会对HLog的最大个数做限定。当到达HLog的最大个数的时辰,会逼迫刷盘(hbase.regionserver.max.logs,默认32个)。 4. MemStore到达刷写时距离断 当MemStore到达时距离断的阈值,会触发刷写操纵,hbase.regionserver.optionalcacheflushinterval,默认3600000,即1小时,假如配置为0,则意味着封锁按时自动刷写。 5. 手工触发 可以通过hbase shell可能java api手工触发flush的操纵 6. 封锁RegionServer触发 当正常封锁RegionServer会触发刷盘的操纵,所稀有据刷盘后就不必要再行使HLog规复数据 7. Region行使HLog规复完数据后触发 当RegionServer呈现妨碍的时辰,其上面的Region会迁徙到其他正常的RegionServer上,在规复完Region的数据后,会触发刷盘,当刷盘完成后才会提供应营业会见。 Region拆分 跟着营业的成长,在表中的数据会越来越多,Region会越来越大,这样会严峻影响数据读取服从。以是当一个Region变的过大后,会触发Split操纵,将一个Region破碎成两个子Region。Region的拆分分为自动拆分和手动拆分两种。 ![]() Region拆分流程
为了镌汰对营业的影响,Region Split进程并不会真正将父Region中的HFile数据搬到子Region目次中。Split进程仅仅是在子Region中建设了到父Region的HFile的引用文件,子Region1中的引用文件指向原HFile的上部,而子Region2的引用文件指向原HFile2的下部。数据的真正迁居事变是在Compaction进程中完成的。 Region归并 Region的归并分为小归并(Minor Compaction)和大归并(Major Compaction)。 ![]() 小归并(Minor Compaction) (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |