eclipse下使用javaapi连接hbase记录

1.hadoop工程已经配置好,把hbase目录放到windows下,用来导入jar包。

2.确保windowshosts文件配置完成,确保java环境配置完成。

3.创建hadoop工程,把hbase下的jar包全部导入工程,不清楚到底需要哪个包,注意,可能你的hbase下的包不全,网上搜索。这里创建一个普通的工程,把hadoopjar包导入工程也可以。

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");

}

}

}

这里注意testhd2zookeeper的服务器,不要连接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包,导入工程后,成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值