【发布时间】:2016-07-30 20:44:18
【问题描述】:
我正在运行以下 Storm 设置(在 Ubuntu 16.4 64 位上)。
- 风暴:0.10.1
- Hadoop:2.5.2(本地伪集群)
- Hbase:1.1.5(本地伪集群)
- jar 的编译器:maven
- 通过导入函数使用默认的 hbase Storm 支持类:org.apache.storm.hbase.bolt.HbaseBolt 和 mapper.SimpleHBaseMapper。
我正在尝试使用“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 天我一直在进行故障排除,没有任何过程。
亲切的问候, 标记
【问题讨论】:
-
有人有什么建议吗?
标签: hadoop hbase apache-storm