HBASE组件说明

    技术2022-07-11  97

    1.客户端先请求zk集群,然后创建连接对象Connection

    2.Hmaster向ZK注册,监听,监控子节点(region)的变化

    3.regionserver(管理region的节点),也向ZK注册

    4.创建表的时候,找zookeeper,然后告诉Hmaster,这就相当于间接的找master,建表的时候必须找master,并且给region划分任务

    5.当master宕机后,查询数据仍然能够查询,说明查询数据的时候不经过maser

    6.(1)查询数据的时候也找ZK,ZK中有个节点(/hbase/meta:linux02),这个节点告诉客户端元数据存储到那台机器上了,(2) 拿到元数据,(3)然后客户端去请求相应的机器, (元数据存储在hdfs中,只是linux管理这数据,当Linux其中的一台宕机后,maser会把元数据让别的机器管理元数据)

    7.region(表的行范围数据),

    为什么有region?

    因为表太大了,根据范围来拆开,然后分别存储到region(节点)中

    Region中有列族,一个列族对应一个文件夹,抽象为一个对象(store(cf)),有几个列族就与几个store 一个列族中的store肯定对应hdfs中的一个文件夹,在hdfs中一个region对应一个文件夹(这个文件夹时虚拟的),

    8.hdfs中的虚拟文件夹存储的是Hfile(默认128M一个)

    9.当put时不是put一次写一次而是存到内存(MEMstore)中,一个列族对应一个MEMstore,当写道一定大小的时候,flush一下,就是将内存对应的数据刷新到hdfs,生成一个对应的Hfile文件, 当内存达到一定阈值的时候也会刷新,达到操作的次数时也会刷写,

    10.写数据的时候一边往内存中写,一边往日志中写,操作记录都会记录在日志中(宕机了也对数据没什么影响),日志也是滚动生成,也是滚动刷写到hdfs中

    Processed: 0.012, SQL: 9