基本环境
hadoop:hadoop-2.7.3
hbase:hbase-0.98.6-hadoop2
zookeeper:zookeeper-3.4.5-cdh5.3.6
jdk:jdk1.8.0_151
pom.xml依赖下载
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>0.98.6-hadoop2</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>0.98.6-hadoop2</version>
</dependency>
代码示例
package make.hbase.com;
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.NamespaceDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionManager;
import org.junit.Test;
public class API_01 {
@Test
public void cteattable() {
String namespace = "hadoop_hbase";
String tbname = "hadoop";
String colfamily = "info";
// 读取配置信息
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.rootdir", "hdfs://make.hadoop.com:8020/hbase");
conf.set("hbase.cluster.distributed", "true");
conf.set("hbase.zookeeper.quorum", "make.hadoop.com");
// 建立连接
try {
HConnection conn = HConnectionManager.createConnection(conf);
HBaseAdmin admin = new HBaseAdmin(conf);
// 创见命名空间的描述器,并将其build出来
NamespaceDescriptor nadesc = NamespaceDescriptor.create(namespace)
.build();
// 创建表对象,加载表到namespace
TableName table = TableName.valueOf(namespace + ":" + tbname);
// 创建标的描述器
HTableDescriptor tbdesc = new HTableDescriptor(table);
// 创建列簇的描述器
HColumnDescriptor coldesc = new HColumnDescriptor(colfamily);
// 将列簇添加到表的描述器中
tbdesc.addFamily(coldesc);
// 创建表
admin.createTable(tbdesc);
System.out.println("the table is created successfully");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最终结果,会成功创建出一个hadoop——hbase下的一个hadoop表
简单试水,大功告成^_^