zoukankan      html  css  js  c++  java
  • HBase之写流程中的刷写时机

    目的

    1. 在执行刷写时,将部分过时的数据舍去,最多保留列族VERSIONS数量的put类型的cell.
    2. 在刷写时,会将memstore中的rowkey进行排序后,再刷写,方便在查询时,快速检索数据

    手动刷写

    flush "表名"
    flush "region名"

    刷写后磁盘上的HFile文件可以通过HBase提供的工具查看

    habase org.apache.hadoop.hhase.io.hfile.HFile -e -p -f 文件路径

    自动刷写

    基于Memstore的刷写:

    单个memstore的大小,超过flush.size时, 当前memstore的所有region的所有列族都会刷写.

    hbase.hregion.memstore.flush.size(默认128M)

    单个memstore大小超过: flush.size * block.multiplier时, 会阻塞客户端向此memstore的写入

    hbase.hregion.memstore.flush.size(默认值128M)
    * hbase.hregion.memstore.block.multiplier(默认值4)

    基于Regionserver的刷写:

    一个regionserver负责多个region,每个region又包含多个store对象,每个store对象都有一个memstore.

    当一个regionserver负责的所有memstore总大小超过

    java_heapsize
    * hbase.regionserver.global.memstore.size(默认值0.4)
    * hbase.regionserver.global.memstore.size.lower.limit(默认值0.95)

    此时, regionserver会将负责的所有memstore按照大小排序, 从大到小依次刷写,直到总大小低于以上阈值.

    如果regionserver所负责的所有的store对象的memstore总大小已经超过

    java_heapsize
    *hbase.regionserver.global.memstore.size(默认值0.4)

    此时,会阻塞客户端向当前regionserver的所有region的写入.

    基于时间的刷写:

    ​ 默认每间隔base.regionserver.optionalcacheflushinterval(默认1小时),自动刷写

    基于WAL处理文件的刷写:

    ​ 如果正在使用的WAL文件的memstore数量超过32时,此时会根据WAL文件的生成时间,从早到晚依次刷写.

  • 相关阅读:
    js对象的直接赋值、浅拷贝与深拷贝
    如何使ElementUi中的el-dropdown传入多参数
    机器学习之垃圾邮件分类2
    机器学习之手写数字识别-小数据集
    机器学习之深度学习-卷积
    机器学习之朴素贝叶斯-垃圾邮件分类
    机器学习之分类与监督学习,朴素贝叶斯分类算法
    机器学习之主成分分析(PCA&特征选择)
    机器学习之逻辑回归实践
    机器学习之特征选择
  • 原文地址:https://www.cnblogs.com/bitbitbyte/p/13247766.html
Copyright © 2011-2022 走看看