2016-07-30 8 views
1

ich den folgenden Sturm Setup ausgeführt (auf Ubuntu 16.4 64 Bit).Apache Sturm Hbase Versionskompatibilität, java.lang.NoSuchFieldError: HBASE_CLIENT_LIMIT

  • Storm: 0.10.1
  • Hadoop: 2.5.2 (lokaler Pseudo-Cluster)
  • Hbase: 1.1.5 (lokaler Pseudo-Cluster)
  • Compiler für das Glas: maven
  • Verwendung Die standardmäßigen hbase-Sturm-Unterstützungsklassen werden über die Importfunktion: org.apache.storm.hbase.bolt.HbaseBolt und mapper.SimpleHBaseMapper aufgerufen.

Ich versuche mit einem "Hbase" Bolzen in Richtung der Hbase DB zu schreiben. Während des Prozesses bekomme ich folgende Fehlermeldung:

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] 

Das sieht wie ein ähnliches Problem: http://lucene.472066.n3.nabble.com/CIS-CMMI-3-HBASE-CLIENT-PREFETCH-LIMIT-td4254588.html, die in einem Kompatibilitätsproblem Ergebnisse.

Im vorgesehenen Sturm hbase jar ich Verweise sehen kann: 2.2.0 hbase 0.98.4-hadoop2 und hdfs Version aber in ich sah in der pom-Datei der unterstützten hbase Quelle https://github.com/apache/storm/tree/master/external/storm-hbase dass Hbase Version 1.1. 0 wird unterstützt.

Funktioniert mein Setup nur, wenn ich meine Hbase Version auf 0.98.4-hadoop oder höher zurückstellen werde bis Version hbase-0.98.20-hadoop2 oder die 1.1.0 benutzen? Von 1.1.5 auf 1.1.0 zurückzugehen, scheint allerdings merkwürdig, und ich habe beide bereits herabgestuft. Oder sollte ich die apache.hadoop.hbase Klassen verwenden? Ich habe eine Menge Code gesehen, der diese Klassen benutzt.

Wie auch immer, bitte beraten. Ich habe die letzten 5 Tage ohne jeden Prozess eine Fehlerbehebung durchgeführt.

Mit freundlichen Grüßen, Mark

+0

Jemand hat einen Rat? –

Antwort

0

Dieses Problem wird durch die Version von hbase-Client in Ihrem pom sich von den JAR-Versionen auf der Server-Seite verursacht wird. Wenn Sie herstellerspezifische Versionen verwenden (z. B. 1.2.0-cdh5.7.0), muss dies ebenfalls konsistent sein.

Verwandte Themen