zoukankan      html  css  js  c++  java
  • HBase change split policy on an existing table

    hbase(main):006:0> create 'test_table_region', 'username'
    0 row(s) in 1.2150 seconds
    
    hbase(main):009:0> put 'test_table_region', '1', 'username:nick' ,'3'
    0 row(s) in 0.0050 seconds
    
    hbase(main):010:0> scan 'test_table_region'
    ROW                                COLUMN+CELL                                                                                      
     1                                 column=username:nick, timestamp=1436859225880, value=3                                           
    1 row(s) in 0.1370 seconds
    
    hbase(main):011:0> describe 'test_table_region'
    DESCRIPTION                                                                           ENABLED                                       
     {NAME => 'test_table_region', FAMILIES => [{NAME => 'username', DATA_BLOCK_ENCODING  true                                          
     => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRES                                               
     SION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'fal                                               
     se', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BLOCKCACH                                               
     E => 'true'}]}                                                                                                                     
    1 row(s) in 0.4040 seconds
    
    
    hbase(main):013:0> disable 'test_table_region'
    0 row(s) in 3.1710 seconds
    
    hbase(main):001:0> alter 'test_table_region', {METHOD => 'table_att', SPLIT_POLICY => 'org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy', MAX_FILESIZE => '5000000000'}
    Updating all regions with the new schema...
    1/1 regions updated.
    Done.
    0 row(s) in 4.5130 seconds
    
    hbase(main):003:0> enable 'test_table_region'
    0 row(s) in 6.0330 seconds
    
    hbase(main):046:0> describe 'test_table_region'
    DESCRIPTION                                                                           ENABLED                                       
     {NAME => 'test_table_region', SPLIT_POLICY => 'org.apache.hadoop.hbase.regionserver. true                                          
     ConstantSizeRegionSplitPolicy', MAX_FILESIZE => '5000000000', FAMILIES => [{NAME =>                                                
     'username', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE                                                
     => '0', COMPRESSION => 'NONE', VERSIONS => '3', TTL => '2147483647', MIN_VERSIONS =>                                               
      '0', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', ENCODE_ON_DISK => 'true',                                               
      IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}                                                                                     
    1 row(s) in 0.4610 seconds

    the alter split_policy does not work for hbase before version 0.94

    we need to use java code to change the split policy of an existing table

     protected void changeSplitPolicy(String tableName, Configuration conf) throws IOException, IllegalAccessException, InstantiationException {
        HBaseAdmin admin = new HBaseAdmin(conf);
        HTable hTable = new HTable(conf, tableName);
        HTableDescriptor htd = hTable.getTableDescriptor();
        HTableDescriptor tableDesc = new HTableDescriptor(htd);
    
        tableDesc.setValue(HTableDescriptor.SPLIT_POLICY, ConstantSizeRegionSplitPolicy.class.getName());
        tableDesc.setValue(HTableDescriptor.MAX_FILESIZE, "5000000000");
    
        if(admin.isTableEnabled(tableName)) {
          admin.disableTable(tableName);
        }
        admin.modifyTable(Bytes.toBytes(tableName), tableDesc);
        hTable.close();
        admin.close();
        System.out.println("change split policy over");
      }
  • 相关阅读:
    bzoj千题计划174:bzoj1800: [Ahoi2009]fly 飞行棋
    bzoj千题计划173:bzoj1257: [CQOI2007]余数之和sum
    bzoj千题计划172:bzoj1192: [HNOI2006]鬼谷子的钱袋
    bzoj千题计划171:bzoj2456: mode
    bzoj千题计划170:bzoj1968: [Ahoi2005]COMMON 约数研究
    bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
    bzoj千题计划168:bzoj3513: [MUTC2013]idiots
    oracle 11g RAC 的一些基本概念(四)
    fdisk用法(转载)
    Oracle 11g 新特性 -- Oracle Restart 说明(转载)
  • 原文地址:https://www.cnblogs.com/yanghuahui/p/4645878.html
Copyright © 2011-2022 走看看