Issue Details (XML | Word | Printable)

Key: NUCHBASE-30
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Andy Jefferson
Reporter: Peter Rainer
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
DataNucleus Store HBase

Upgrade to HBase 0.90.0 Release

Created: 20/Jan/11 09:13 AM   Updated: 27/Jan/11 07:54 PM   Resolved: 20/Jan/11 10:25 AM
Component/s: None
Affects Version/s: 2.0.2
Fix Version/s: 3.0.0.m1

Datastore: HBase


 Description  « Hide
HBase just released the stable version 0.90.0 - can you please upgrade the connector to use 0.90.0 as this version has more than 1000 bugs fixed

Sort Order: Ascending order - Click to sort in descending order
Andy Jefferson added a comment - 20/Jan/11 10:25 AM
SVN trunk now builds against 0.90.0 (though will also build/run against 0.20.6)

Peter Rainer added a comment - 22/Jan/11 12:08 AM
Andy, it's not entirely working (at least not the nightly build version from maven) the reason therefore is that org.apache.hadoop.hbase.client.HBaseAdmin constructor has a different signature in the 0.90.x versions than in the 0.20.x versions

that's what it looked like in 0.20.x
  public HBaseAdmin(HBaseConfiguration conf)
    throws MasterNotRunningException

and that's what it looks like in 0.90.x
  public HBaseAdmin(Configuration conf)
    throws MasterNotRunningException, ZooKeeperConnectionException

Even though the source code would compile with both versions the jar file is not working with the other version and throwing a NoSuchMethodError
java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.HBaseAdmin.<init>(Lorg/apache/hadoop/hbase/HBaseConfiguration;)V

Maybe you can offer 2 versions in your maven repository (one compiled for 0.20.x and one compiled for 0.90.x) ?

Andy Jefferson added a comment - 22/Jan/11 09:28 AM
SVN is built against 0.90, so if HBase change their APIs (as opposed to deprecate) then they limit what version is usable. Consequently this is actually usable against 0.90+, and anyone wanting to use it against 0.20.6 can recompile it for themselves (aka open source).