zoukankan      html  css  js  c++  java
  • HBase-修改表结构

    HBase修改表结构

    package com.hbase.HBaseAdmin;
    
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.HColumnDescriptor;
    import org.apache.hadoop.hbase.HTableDescriptor;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.Admin;
    import org.apache.hadoop.hbase.client.Connection;
    import org.apache.hadoop.hbase.client.ConnectionFactory;
    import org.apache.hadoop.hbase.util.Bytes;
    
    /**
    * @author:FengZhen
    * @create:2018年9月12日
    * 修改表结构
    */
    public class ModifyTable {
    
    	private static String addr="HDP233,HDP232,HDP231";
    	private static String port="2181";
    	private static Connection connection;
    	
    	/**
    	 * 获取连接
    	 */
    	public static void getConnection(){
    		Configuration conf = HBaseConfiguration.create();
    
    		conf.set("hbase.zookeeper.quorum",addr);
    		conf.set("hbase.zookeeper.property.clientPort", port);
    		try {
    			connection = ConnectionFactory.createConnection(conf);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/*
    	 * 关闭连接
    	 */
    	public static void close() {
    		/**
    		 * close connection
    		 **/
    		if (connection != null) {
    			try {
    				connection.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    	
    	/**
    	 *  Equals: true
    		New schema: 'test_modify', {TABLE_ATTRIBUTES => {MAX_FILESIZE => '1073741824'}, {NAME => 'colfam1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}, {NAME => 'colfam2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
    	 */
    	/**
    	 * modifyTable方法只提供了异步的操作模式,没有提供同步的操作模式。
    	 * 如果用户需要确认是否已经成功,需要在客户端代码中显式循环地调用getTableDescriptor方法获取元数据
    	 * 直到结果与本地实例匹配。
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		getConnection();
    		try {
    			String tableName = "test_modify";
    			Admin admin = connection.getAdmin();
    			HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
    			HColumnDescriptor columnDescriptor = new HColumnDescriptor(Bytes.toBytes("colfam1"));
    			tableDescriptor.addFamily(columnDescriptor);
    			//使用旧结构建表
    			admin.createTable(tableDescriptor);
    			
    			HTableDescriptor tableDescriptor2 = admin.getTableDescriptor(TableName.valueOf(tableName));
    			HColumnDescriptor columnDescriptor2 = new HColumnDescriptor(Bytes.toBytes("colfam2"));
    			tableDescriptor2.addFamily(columnDescriptor2);
    			tableDescriptor2.setMaxFileSize(1024 * 1024 * 1024L);
    
    			admin.disableTable(TableName.valueOf(tableName));
    			admin.modifyTable(TableName.valueOf(tableName), tableDescriptor2);
    			admin.enableTable(TableName.valueOf(tableName));
    			
    			HTableDescriptor tableDescriptor3 = admin.getTableDescriptor(TableName.valueOf(tableName));
    			System.out.println("Equals: " + tableDescriptor2.equals(tableDescriptor3));
    			System.out.println("New schema: " + tableDescriptor3);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		close();
    	}
    	
    }
      
    

      

  • 相关阅读:
    Codevs 2602 最短路径问题
    NOIp2015酱油酱油记
    51Nod-1091 线段的重叠
    poj-3264-Balanced Lineup
    51Nod-1212 无向图最小生成树
    51Nod-1279 扔盘子
    51Nod--1010 只包含235的数
    51Nod--1015 水仙花数
    51Nod-1136 欧拉函数
    使用caffe训练自己的CNN
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/9635586.html
Copyright © 2011-2022 走看看