Eclipse 进行Hbase开发步骤


将Hadoop和Hbase拷贝到本地并配置环境变量,如果不配置环境变量会出现如下异常

java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set

这里写图片描述


将Hbase下lib中的jar包导入开发环境

这里写图片描述


在本地开发环境中的Hosts文件中配置Hbase的IP并把127.0.0.1 xxx注释

这里写图片描述

我在没有配置时发生如下错误

这里写图片描述


简单创建表的Demo

package club.yuit;


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.junit.After;
import org.junit.Before;
import org.junit.Test;



public class App 
{   
    private static final String table="yuit_table";

    private static Configuration cf=null;

    private static Connection cnn=null;


    /**
     * 
     * @param tableName 表名
     * @param familys 列族列表
     * @throws IOException 
     */
    public  void createTable(TableName tableName,String[] familys) throws IOException {
        Admin admin=cnn.getAdmin();

        if(admin.tableExists(tableName)){
            System.out.println(tableName.toString()+"表已经存在");
        }else{
            HTableDescriptor descriptor=new HTableDescriptor(tableName);//表对象

            HColumnDescriptor columnDescriptor=null;//一个列族对象

            for (String fm : familys) {
                columnDescriptor=new HColumnDescriptor(fm);
                descriptor.addFamily(columnDescriptor);
            }

            admin.createTable(descriptor);//创建表

            System.out.println("表创建成功!!");

        }
    }

    @Before
    public  void before(){
        //System.out.println("程序初始化........");
        cf=HBaseConfiguration.create();
        try {
            cnn=ConnectionFactory.createConnection(cf);//通过配置获取链接
        } catch (IOException e) {
            e.printStackTrace();
        }
        //System.out.println(cf.get("hbase.zookeeper.quorum"));
    }


    @Test
    public void test() throws IOException {
        TableName tableName=TableName.valueOf(table);
        this.createTable(tableName, new String[]{"fm1","fm2"});
    }



    @After
    public void after() throws IOException {

    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值