将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 {
}
}