我正在运行以下Storm设置(在Ubuntu 16.4 64位上)。
我正在尝试使用“Hbase”螺栓向Hbase DB写入。在此过程中,我收到以下错误:
016-07-30 21:06:14.874 b.s.util [ERROR] Async loop died!
java.lang.NoSuchFieldError: HBASE_CLIENT_PREFETCH_LIMIT
at org.apache.hadoop.hbase.client.HConnectionKey.<clinit>(HConnectionKey.java:42) ~[stormjar.jar:?]
at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:271) ~[stormjar.j
ar:?]
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:197) ~[stormjar.jar:?]
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:159) ~[stormjar.jar:?]
at org.apache.storm.hbase.common.HBaseClient$1.run(HBaseClient.java:45) ~[storm-hbase-0.10.1.jar:0.10.1]
at org.apache.storm.hbase.common.HBaseClient$1.run(HBaseClient.java:42) ~[storm-hbase-0.10.1.jar:0.10.1]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_91]
这看起来像一个类似的问题:http://lucene.472066.n3.nabble.com/CIS-CMMI-3-HBASE-CLIENT-PREFETCH-LIMIT-td4254588.html这会导致兼容性问题。
在提供的storm-hbase jar中,我可以看到对以下内容的引用: hbase 0.98.4-hadoop2和hdfs 2.2.0版,但我在支持的hbase源https://github.com/apache/storm/tree/master/external/storm-hbase的pom文件中看到了支持Hbase版本1.1.0。
如果我将Hbase版本切换回0.98.4-hadoop或更高版本直到版本hbase-0.98.20-hadoop2或使用1.1.0,我的设置是否仍然有用?从1.1.5回到1.1.0似乎很奇怪,我已经降级了两者。或者我应该使用apache.hadoop.hbase类?我看到很多代码都在使用这些类。
无论如何,请指教。过去5天我一直在进行故障排除,没有任何过程。
亲切的问候, 标记
答案 0 :(得分:0)
此问题是由您的pom中的hbase-client版本与服务器端的jar版本不同引起的。如果您使用特定于供应商的版本(例如1.2.0-cdh5.7.0),那么它也需要保持一致。