HBase建表的同时建分区

使用HBase Shell建表的时候,除了一些常用的option以外,我们还可以同时建立一些预分区,这样可以预防初次插入数据时热点问题。

通过直接输入create,我们可以看到有如下提示:

?
1
2
3
4
5
6
7
8
9
10
11
12
Examples:
 
   hbase> create 't1' , {NAME => 'f1' , VERSIONS => 5}
   hbase> create 't1' , {NAME => 'f1' }, {NAME => 'f2' }, {NAME => 'f3' }
   hbase> # The above in shorthand would be the following:
   hbase> create 't1' , 'f1' , 'f2' , 'f3'
   hbase> create 't1' , {NAME => 'f1' , VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true }
   hbase> create 't1' , 'f1' , {SPLITS => [ '10' , '20' , '30' , '40' ]}
   hbase> create 't1' , 'f1' , {SPLITS_FILE => 'splits.txt' }
   hbase> # Optionally pre-split the table into NUMREGIONS, using
   hbase> # SPLITALGO ("HexStringSplit", "UniformSplit" or classname)
   hbase> create 't1' , 'f1' , {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit' }

例子中仅给出了要么有普通option,要么是有指定分区等选项,但是没有给出既有普通option(例如VERSIONS,COMPRESSION等),又创建预分区的例子。

如果有这个需求呢?如下对吗?

create 't', {NAME => 'f', VERSIONS => 1, COMPRESSION => 'SNAPPY', SPLITS => ['10','20','30']}

运行后发现肯定是不行的。正确的写法应该是这样的:

?
1
2
create 't' , {NAME => 'f' , VERSIONS => 1, COMPRESSION => 'SNAPPY' },
     {SPLITS => [ '10' , '20' , '30' ]}

因为分区时针对全表而非某个Column Family的。

 

转载地址:http://shitouer.cn/2013/05/hbase-create-table-with-pre-splitting-and-other-options/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值