1.hadoop工程已经配置好,把hbase目录放到windows下,用来导入jar包。
2.确保windowshosts文件配置完成,确保java环境配置完成。
3.创建hadoop工程,把hbase下的jar包全部导入工程,不清楚到底需要哪个包,注意,可能你的hbase下的包不全,网上搜索。这里创建一个普通的工程,把hadoop的jar包导入工程也可以。
4.新建一个类输入代码如下:(前提是先创建了一个database的表)
packagehbase1;
importjava.io.IOException;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.hbase.HBaseConfiguration;
importorg.apache.hadoop.hbase.HColumnDescriptor;
importorg.apache.hadoop.hbase.HTableDescriptor;
importorg.apache.hadoop.hbase.client.HBaseAdmin;
importorg.apache.hadoop.hbase.util.Bytes;
publicclasstest{
publicstaticvoidmain(String[]args)throwsIOException{
Configurationconf=HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","testhd2");
HBaseAdminadmin=newHBaseAdmin(conf);
HTableDescriptortableDescriptor=admin.getTableDescriptor(Bytes.toBytes("database"));
byte[]name=tableDescriptor.getName();
System.out.println(newString(name));
HColumnDescriptor[]columnFamilies=tableDescriptor.getColumnFamilies();
for(HColumnDescriptord:columnFamilies){
System.out.println(d.getNameAsString());
System.out.println("12345");
}
}
}
这里注意testhd2是zookeeper的服务器,不要连接namenode。应该把所有的zookeeper都写上,‘,’隔开,写一个也可以
5.可能会遇到错误
Exceptioninthread"main"java.lang.NoClassDefFoundError:com/google/protobuf/Message
atorg.apache.hadoop.hbase.io.HbaseObjectWritable.<clinit>(HbaseObjectWritable.java:263)
atorg.apache.hadoop.hbase.ipc.Invocation.write(Invocation.java:139)
atorg.apache.hadoop.hbase.ipc.HBaseClient$Connection.sendParam(HBaseClient.java:638)
atorg.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:1001)
atorg.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:150)
at$Proxy5.getProtocolVersion(UnknownSource)
atorg.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:183)
atorg.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:335)
atorg.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:312)
atorg.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:364)
atorg.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:682)
atorg.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:110)
athbase1.test.main(test.java:20)
Causedby:java.lang.ClassNotFoundException:com.google.protobuf.Message
这是因为缺少jar包,是缺少hbase/lib下的protobuf-java-2.4.1.jar包,这里用了个稍微有点差别的版本成功了,最好用对应的版本。有了jar包,导入工程后,成功。