apache storm hbase版本兼容性,java.lang.nosuchfielderror:hbase\u client\u prefetch\u limit

5hcedyr0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(411)

我正在运行下面的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数据库写。在此过程中,我得到以下错误:

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 导致兼容性问题。
在提供的StormHBase jar中,我可以看到对以下内容的引用:hbase 0.98.4-hadoop2和hdfs版本2.2.0,但在中,我看到了受支持的hbase源的pom文件https://github.com/apache/storm/tree/master/external/storm-hbase 支持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天里,我一直在排除故障,没有任何流程。
谨致问候,马克

niwlg2el

niwlg2el1#

这个问题是由于pom中hbase客户端的版本与服务器端的jar版本不同造成的。如果您使用的是特定于供应商的版本(例如1.2.0-cdh5.7.0),那么这也需要保持一致。

相关问题