Hbase 建表操作实例源码

       由于最近突然要搞Hbase,以前没搞过,百度了半天,才终于理清了一点头绪,特记录,以备忘。


        实验环境:cdh 5.1.3,首先需要在cdh的安装程序里找到hbase的相关包,把它下载到本地。这里留一个下载地址,百度云盘:cdh5.1.3相关包

 

package com.guet.hbase.util;

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.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

public class HbaseUtil {

	
	
	public static Configuration configuration;  
	private static HTable table=null;
    static {  
     configuration = HBaseConfiguration.create();  
     configuration.set("hbase.zookeeper.property.clientPort", "2181");  
  configuration.set("hbase.zookeeper.quorum", "192.168.1.62,192.168.1.201,192.168.1.108");  
        configuration.set("hbase.master", "192.168.1.62:600000");  
    } 
    public HbaseUtil(String tableName) throws IOException{
    table = new HTable(configuration,tableName);
	}
	
  //创建表
    public  void createTable(String tableName) {  
         
        try {  
            HBaseAdmin hBaseAdmin = new HBaseAdmin(configuration);  
            if (hBaseAdmin.tableExists(tableName)) {// 如果表已存在,跳过 
               // hBaseAdmin.disableTable(tableName);  
               // hBaseAdmin.deleteTable(tableName);  
                System.out.println(tableName + " is exist,skip...");  
            }  
            
            // 表不存在,就创建表
            else{
           	
 HTableDescriptor tableDescriptor=new HTableDescriptor(tableName.getBytes());  
   tableDescriptor.addFamily(new HColumnDescriptor("cf1"));  //创建列簇1
   tableDescriptor.addFamily(new HColumnDescriptor("cf2"));  //创建列簇2 
    hBaseAdmin.createTable(tableDescriptor); 
    hBaseAdmin.close();	           	          	
                 System.out.println("create table success!"); 
            }    
           
        } catch (MasterNotRunningException e) {  
            e.printStackTrace();  
        } catch (ZooKeeperConnectionException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } 
        
       
    }  
    // 写入数据
    public  void writeRow(String tableName,String rowKey,String qualifier,String value){
		try{
			             
              Put put = new Put(Bytes.toBytes(rowKey));
	      put.add(Bytes.toBytes("cf1"),//列族
		Bytes.toBytes(qualifier),//列名
		Bytes.toBytes(value));//值
		table.put(put);
				
		}catch (IOException e){
			e.printStackTrace();
		}
	}
    
    
}

完毕



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值