zoukankan      html  css  js  c++  java
  • HBase预分区

    hbase建表时,支持预分区,在shell中操作:

    hbase(main):033:0> create 't1','f1',SPLITS => ['10','20','30']
    hbase(main):027:0> put 't1','5','f1:c1','1'
    0 row(s) in 0.0280 seconds
    
    hbase(main):028:0> put 't1','20','f1:c1','1'
    0 row(s) in 0.1480 seconds
    
    hbase(main):029:0> put 't1','40','f1:c1','1'
    0 row(s) in 0.0100 seconds

    需要注意的是,表t1建立4个分区:[min,'10'),['10','20'),['20','30'),['30',max)

    插入数据之后,数据可能还在内存,没有刷到hdfs,做下操作:

    hbase(main):031:0> flush 't1'
    0 row(s) in 1.5330 seconds

    从hbase管理界面查看数据文件:

    Region Name Start Key End Key
    t1,,1532848759672.8c4fb6c5fb9a52427a88dddc958bc6f4.   10
    t1,10,1532848759672.3b114bc4a078c6593e495ffacda71d8e. 10 20
    t1,20,1532848759672.398dc734620ed289ad7b2a03a33d8d5b. 20 30
    t1,30,1532848759672.607dc0ffac9721c6ded846550ee418d6. 30  

    查看hdfs上t1的region如下:

    drwxr-xr-x   - hbase hbase          0 2018-07-29 16:13 /hbase/data/default/t1/398dc734620ed289ad7b2a03a33d8d5b
    drwxr-xr-x   - hbase hbase          0 2018-07-29 15:19 /hbase/data/default/t1/3b114bc4a078c6593e495ffacda71d8e
    drwxr-xr-x   - hbase hbase          0 2018-07-29 16:13 /hbase/data/default/t1/607dc0ffac9721c6ded846550ee418d6
    drwxr-xr-x   - hbase hbase          0 2018-07-29 15:19 /hbase/data/default/t1/8c4fb6c5fb9a52427a88dddc958bc6f4

    查看其中一个region的f1列族的HFile文件信息如下:

    -rw-r--r--   3 hbase hbase       1034 2018-07-29 16:13 /hbase/data/default/t1/607dc0ffac9721c6ded846550ee418d6/f1/952bedb2b2f34dd9a2ff131202916475

    刚刚插入了3条数据,那么这3条数据在些文件里面呢,需要记住的是hbase种rowkey按照字典序排列的,是字典序!,所以刚刚3条数据,rowkey='5'和rowkey='40'在最后一个分区,rowkey='20'的在倒数第二个分区,特别容易误以为rowkey='5'的落在了第一个分区,第一个分区只会存rowkey为'00','000','01000'.....这样的

    还有一点主意的地方,如果对表truncate了,之后就没有预分区!

    hbase(main):034:0> truncate 't1'
    Truncating 't1' table (it may take a while):
     - Disabling table...
     - Truncating table...
    0 row(s) in 3.6830 seconds
    
    hbase(main):035:0> flush 't1'

    查看hdfs:

    hadoop fs -ls /hbase/data/default/t1/
    drwxr-xr-x   - hbase hbase          0 2018-07-29 17:38 /hbase/data/default/t1/6aed5d65799dda34b869a61c1f81159f
  • 相关阅读:
    iOS 代码让手机震动一下
    iOS开发 --制作圆形的头像(UIImage)
    JAVA基本数据类型和引用数据类型的区别
    jquery基础
    JS基础
    JAVA异常详解
    单例模式详解及java常用类
    JAVA基础之字符串和面向对象
    我的第一篇博客 初识动画,飞机行小动画
    GCD系列:调度组(dispatch_group)
  • 原文地址:https://www.cnblogs.com/darange/p/9386079.html
Copyright © 2011-2022 走看看