美文网首页我爱编程
hbase之region切分(未完成)

hbase之region切分(未完成)

作者: 和尚无灵感 | 来源:发表于2018-02-11 17:49 被阅读0次

    一、需求

    hbase中有一张article表,article有一个blog列族,通过for循环对表插入10000行数据

    article在hdfs上存储路径对应:/hbase/data/default/article/70ad7d9367edb1eb72dc31d7ae181432/....................

    手动执行split操作,让一个region切分成2个子region

    父region:70ad7d9367edb1eb72dc31d7ae181432

    子region A:4ead66de67ac2a3b11c770a2bb2f1286

    子region B:c7e0f54bfde759662ca2e47ebe1e0a12

    二、执行过程

    1、父region下创建一个splits目录

    /hbase/data/default/article/70ad7d9367edb1eb72dc31d7ae181432/.splits

    2、父region被关闭,不在对外服务,同时将region中的数据持久化到磁盘上

    3、创建daughter A和daughter B

    /hbase/data/default/article/70ad7d9367edb1eb72dc31d7ae181432/.splits/daughter A

    /hbase/data/default/article/70ad7d9367edb1eb72dc31d7ae181432/.splits/daughter B

    4、创建引用文件

    /hbase/data/default/article/70ad7d9367edb1eb72dc31d7ae181432/.splits/daughter A/reference_files

    /hbase/data/default/article/70ad7d9367edb1eb72dc31d7ae181432/.splits/daughter B/reference_files

    5、新region生成

    父region分裂成2个region,同时将daughter A和daughter B拷贝到hbase根目录下

    引用文件目录

    /hbase/data/default/article/4ead66de67ac2a3b11c770a2bb2f1286/blog/c86b8b7419d84cf1bdfd787931b6e63e.70ad7d9367edb1eb72dc31d7ae181432

    /hbase/data/default/article/c7e0f54bfde759662ca2e47ebe1e0a12/blog/c86b8b7419d84cf1bdfd787931b6e63e.70ad7d9367edb1eb72dc31d7ae181432

    c86b8b7419d84cf1bdfd787931b6e63e.70ad7d9367edb1eb72dc31d7ae181432 就是 reference_files

    c86b8b7419d84cf1bdfd787931b6e63e hfile文件

    70ad7d9367edb1eb72dc31d7ae181432 region名称

    6、compact

    合并过程中使用的临时文件夹

    /hbase/data/default/article/4ead66de67ac2a3b11c770a2bb2f1286/.tmp

    /hbase/data/default/article/c7e0f54bfde759662ca2e47ebe1e0a12/.tmp

    合并操作会在.tmp文件中进行,合并过程就是讲父region的存储文件异步重写到2个子region中。一旦生成重写之后的文件,它们将自动取代引用文件

    7、删除父region

    8、在分裂过程中如果出现问题,就会发生回滚操作

    相关文章

      网友评论

        本文标题:hbase之region切分(未完成)

        本文链接:https://www.haomeiwen.com/subject/ocqltftx.html