【大数据技术-HBase-关于Hmaster、RegionServer、Region等组件功能和读写流程总结】
Hmaster的作用
负责命名空间、表的创建和删除等一些DDL操作、region分配和负载均衡,并不参与数据读写,相比与其他大数据组件,如hdfs的namenode,在hbase中,Hmaster的作用是比较弱化的,即使挂掉,也暂时不影响现有表的读写。
RegionServer的作用
一个机器上一个regionserver进程,主要负责管理多个region,接受客户端读写请求并交给region进行处理,此外,还负责向Hmaster定时心跳汇报自己节点上面所有region的状态,接受Hmaster的关于region的分配任务。
Region
region的切分原则
一个hbase的表,非常大,需要切分为几块,一块就是一个region,切分的原则就是按rowkey,比如rowkey为1-10000的在region1上,10001-20000的在region2上。
一个Region就相当于关系型数据库中分区表的一个分区,类比与hive的表,一个region可以理解为hive按照年进行分区的一段分区,相当于横着切。
region的迁移
假如一个表有5w行,可以切分为5个region。
这些region存放在regionserver上,一个regionserver可以存放一个或多个region,但是如果当前hbase集群只有5个region,却有5个regionserver,假如都放在一个regionserver上,会有不均衡的问题,所以最好的方式是从当前的regionserver上进行迁移,迁移主要由hmaster负责,5个regionserver上各有一个region。
region、列族、store、memstore、hfile的关系
region可以有一个或多个列族,它的结构如下,包含多个store,每个store对应一个列族,每个store都有一个memstore(内存)和多个hfile(hdfs