测试java HBase连接 [英] Testing java HBase connection

查看:1571
本文介绍了测试java HBase连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用HBase Java API将数据写入HBase。我通过Ambari安装了Hadoop / HBase。



以下是配置目前的设置:

  final Configuration CONFIGURATION = HBaseConfiguration.create(); 
final HBaseAdmin HBASE_ADMIN;

HBASE_ADMIN = new HBaseAdmin(CONFIGURATION)

当我尝试写入HBase,我检查以确保表存在

 !HBASE_ADMIN.tableExists(tableName)

如果没有,请创建一个新的。但是,似乎在试图检查表是否存在异常时正在抛出。



我想知道,如果我没有正确连接到HBase ...有没有什么好方法可以验证配置是否正确,并且我正在连接到HBase?

谢谢。




pre> 了java.lang.RuntimeException:在org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries显示java.lang.NullPointerException
(RpcRetryingCaller.java:209)
at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:288)
at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:268)
at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:140)
at org.apache.hadoop.hbase.client.ClientScanner。< init>(ClientScanner.java:135)
at org.apache.hadoop.hbase.catalog.MetaReader.fullScan(MetaReader.java:597)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:802)
at org.apache.hadoop.hbase.catalog.MetaReader.tableExists(MetaReader.java:359)
at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:287)
在org.apache .hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:301)
at com.business.project.hbase.HBaseMessageWriter.getTable(HBaseMessageWriter.java:40)
at com.business.project .hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:59)
at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:54)
at com.business.project.storm.bolt .package.exampleBolt.execute(exampleBolt.java:19)
at backtype.storm.daemon.executor $ fn__5697 $ tuple_action_fn__5699.invoke(executor.clj:659)
at backtype.storm.daemon.executor $ mk_task_receiver $ fn__5620.invoke(executor.clj:415)在backtype.storm.disruptor $ clojure_handler $ reify__1741.onEvent
(disruptor.clj:58)在backtype.storm.utils.DisruptorQueue.consumeBatchToCursor
(DisruptorQueue.java:125)
。在backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
。在backtype.storm.disruptor $ consume_batch_when_available.invoke(disruptor.clj:80)
在背上pe.storm.daemon.executor $ fn__5697 $ fn__5710 $ fn__5761.invoke(executor.clj:794)
at backtype.storm.util $ async_loop $ fn__452.invoke(util.clj:465)
at clojure.lang.AFn.run(AFn.java:24)
在java.lang.Thread.run(Thread.java:745)
引起:java.lang.NullPointerException
at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.getMetaReplicaNodes(ZooKeeperWatcher.java:269)
在org.apache.hadoop.hbase.zookeeper.MetaRegionTracker.blockUntilAvailable(MetaRegionTracker.java:241)
。在org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:62)
at org.apache.hadoop.hbase.client.ConnectionManager $ HConnectionImplementation.locateMeta(ConnectionManager.java:1203)
。在org.apache.hadoop.hbase.client.ConnectionManager $ HConnectionImplementation.locateRegion(ConnectionManager.java:1164)
在org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:294在org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call)
(ScannerCallableWithReplicas.java:130)
在org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:55 )
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:201)




  conf.set(zookeeper.znode.parent,VALUE)

有助于解决问题。


I am trying to use the HBase Java APIs to write data into HBase. I installed Hadoop/HBase through Ambari.

Here is how the configuration is currently set up:

final Configuration CONFIGURATION = HBaseConfiguration.create();
final HBaseAdmin HBASE_ADMIN;

HBASE_ADMIN = new HBaseAdmin(CONFIGURATION)

When I try to write to HBase, I check to make sure that the table exists

!HBASE_ADMIN.tableExists(tableName)

If not, create a new one. However, it appears that when attempting to check if the table exists exceptions are being thrown.

I'm wondering if I'm not correctly connected to HBase...is there any good way to verify that the configuration is correct and that I am connecting to HBase? The exception I'm getting is below.

Thanks.


java.lang.RuntimeException: java.lang.NullPointerException
  at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:209)
  at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:288)
  at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:268)
  at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:140)
  at org.apache.hadoop.hbase.client.ClientScanner.<init>(ClientScanner.java:135)
  at org.apache.hadoop.hbase.catalog.MetaReader.fullScan(MetaReader.java:597)
  at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:802)
  at org.apache.hadoop.hbase.catalog.MetaReader.tableExists(MetaReader.java:359)
  at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:287)
  at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:301)
  at com.business.project.hbase.HBaseMessageWriter.getTable(HBaseMessageWriter.java:40)
  at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:59)
  at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:54)
  at com.business.project.storm.bolt.package.exampleBolt.execute(exampleBolt.java:19)
  at backtype.storm.daemon.executor$fn__5697$tuple_action_fn__5699.invoke(executor.clj:659)
  at backtype.storm.daemon.executor$mk_task_receiver$fn__5620.invoke(executor.clj:415)
  at backtype.storm.disruptor$clojure_handler$reify__1741.onEvent(disruptor.clj:58)
  at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:125)
  at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)
  at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)
  at backtype.storm.daemon.executor$fn__5697$fn__5710$fn__5761.invoke(executor.clj:794)
  at backtype.storm.util$async_loop$fn__452.invoke(util.clj:465)
  at clojure.lang.AFn.run(AFn.java:24)
  at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
  at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.getMetaReplicaNodes(ZooKeeperWatcher.java:269)
  at org.apache.hadoop.hbase.zookeeper.MetaRegionTracker.blockUntilAvailable(MetaRegionTracker.java:241)
  at org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:62)
  at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateMeta(ConnectionManager.java:1203)
  at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1164)
  at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:294)
  at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:130)
  at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:55)
  at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:201)

解决方案

In addition to the configuration parameters suggested by Yosr, specifying

conf.set("zookeeper.znode.parent", "VALUE")

would help resolve the issue.

这篇关于测试java HBase连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆