与 java 客户端的 hbase 连接

hbase connection with java client

我有一个 java 程序 ( eclipse , Maven , windows7) 来填充 Hbase,它存在于来自服务的 VirtualBox 上, 当我从 eclipse.

运行 时程序工作正常

但是当我使用 Maven 中的 assembly plugincmdcygwin 中的 运行 创建一个 executable jar 时,我收到此错误

> [2016-05-03 14:46:44,663][DEBUG] Reading reply sessionid:0x154769ed563000a, packet:: clientPath:null serverPath:null finished:false header:: 300,4  replyHeader:: 300,3632,-101  request:: '/hbase-unsecure/meta-region-server,F  response:: [2016-05-03 14:46:44,663][DEBUG] hconnection-0x6b63f5ff-0x154769ed563000a, quorum=sandbox:2181, baseZNode=/hbase-unsecure Unable to get data of znode /hbase-unsecure/meta-region-server because node does not exist (not an error) [2016-05-03 14:46:44,663][DEBUG] Looked up meta region location, connection=org.apache.hadoop.hbase.client.ZooKeeperRegistry@695e5335; servers = null [2016-05-03 14:46:44,689][DEBUG] Closing scanner id=-1

>org.apache.hadoop.hbase.client.RetriesExhaustedException: Can't get the locations
        at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:312)
        at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:153)
        at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:61)
        at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
        at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:320)
        at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:295)
        at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:160)
        at org.apache.hadoop.hbase.client.ClientScanner.<init>(ClientScanner.java:155)
        at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:811)
        at org.apache.hadoop.hbase.MetaTableAccessor.fullScan(MetaTableAccessor.java:602)
        at org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:366)
        at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:303)
        at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:313)

你们能帮我解决这个问题吗?

像下面这样的更多信息可能会有帮助。 运行 这些命令在你有 "hbase" 命令的 virtualbox 中

hbase zkCli -server sandbox:2181

连接后,您可以运行,在zkcli提示符中:

ls /

请粘贴以上命令的输出。 "/hbase-unsecure " 的 baseZnode 似乎不存在。一般来说,基础 znode 是“/hbase”。

请按照@RamPrasadG

的建议,通过java代码交叉检查运行ning程序的类路径
System.out.println(System.getProperty("java.classpath"))