hbase的读写机制详解,及flush参数的配置详解

1,HBase的的读写流程图,是一个二次寻址的过程

第一次直接到动物园管理员中找到元的元数据信息,即元对应的储存其他所有用户表的RegionServer的的位置,示意图中所给出的为regionserver1,然后第二次直接到regionserver1中的meta.region查询对应的{namespace:table,rowkey,column_family,column}的位置,这个具体的region根据start key和end key和自身的rowkey来决定,最后在Hmaster的调度下,Hregionserver(示意图中的regionserver2)执行最后的更新或插入操作

插入一个插曲,就是官方对空键的解释

hbase的读写机制详解,及flush参数的配置详解_第1张图片

翻译下来为:空键用于表示表开始和表结束。具有空开始的区域是表中的第一个区域。如果一个区域有一个空的开始键和一个空的结束键,它是表中唯一的区域,所以每一个rowkey都能找到自己唯一的区域,进行数据操作。

hbase的读写机制详解,及flush参数的配置详解_第2张图片

总结如下

1.1,读数据流程[scan get]
1)客户端访问zookeeper集群,zookeeper集群保存了meta的位置,获取meta被哪台服务器管理
2)cli​​ent向这台regionserver服务器发起访问请求(-meta-)
       3)客户端从元表的rgion获取到用户表信息(区域,所在RegionServer的,rowkey起始范围),向对应的RegionServer的服务器发起数据访问请求4)这台RegionServer的服务器接收到数据请求访问并响应数据给客户端1.2 ,写数据流程[create put delete] 1)客户端访问zookeeper集群,获取meta表位置,并确定当前写入数据属于哪个区域(rowkey),并确定regio对应的regionserver 2)cli​​ent向这台regionserver服务器发起写入数据请求3)区域服务器接收请求,并响应写入4)先写入WAL(Hlog),再写入memstore(内存)5)当memstore数据达到阀值会冲洗进磁盘形成一个storefile文件(128M) --flush 6)小文件storefile合并成为一个大的storefile文 件    --compact 7)当storefile大小超过10G(默认值)时,会进行split ---拆分   










2,HBASE的相关参数设置

##flush机制


hbase.hregion.memstore.flush.size
134217728




hbase.regionserver.global.memstore.upperLimit
0.4





hbase.regionserver.global.memstore.lowerLimit
0.35

max heap 在hbase-env.sh 中进行设置,默认为1000M

hbase的读写机制详解,及flush参数的配置详解_第3张图片


## compacion机制
<! - 当小的storefile文件达到这个值,就会合并成大的storefile,因为同一个rowkey会始终合并成一个storefile - >

hbase.hstore.compactionThreshold < / name>
3
hbase-default.xml



<! - 一个Region中的所有HStoreFile的主要压缩的时间间隔。默认是1天。设置为0就是禁用这个功能 - >

hbase.hregion.majorcompaction
86400000
hbase-default.xml



## split机制
在工具组的命令中,可以对数据进行手动的flush,compact,split操作
组名:tools
命令:assign,balance_switch,balancer,catalogjanitor_enabled,catalogjanitor_run,catalogjanitor_switch,close_region,compact,flush,hlog_roll,major_compact,merge_region,move,split,trace,unassign,zk_dump
<! - 最大HFile大小。如果一个区域的HFiles的大小并且超过此值,则该区域被分割为两个.->

hbase.hregion.max.filesize
10737418240
hbase-default。 XML



你可能感兴趣的:(hbase的读写机制详解,及flush参数的配置详解)