You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@crunch.apache.org by "Micah Whitacre (JIRA)" <ji...@apache.org> on 2016/10/25 19:13:59 UTC

[jira] [Created] (CRUNCH-626) HBaseSourceTarget Binary compatibility across HBase versions

Micah Whitacre created CRUNCH-626:
-------------------------------------

             Summary: HBaseSourceTarget Binary compatibility across HBase versions
                 Key: CRUNCH-626
                 URL: https://issues.apache.org/jira/browse/CRUNCH-626
             Project: Crunch
          Issue Type: Improvement
          Components: IO
            Reporter: Micah Whitacre


Currently Crunch targets HBase 1.0.   Certain vendors however are trying to maintain API compatibility with HBase 0.96, 0.98, 1.0, and all 1.x.  

While the API compatibility is ok across these versions, it was however not binary compatible as HBase changed the method signature from returning void[1] to returning OperationWithAttributes[1] (and in later versions Scan).

This results in an exception like the following, when you try to use the latest Crunch 0.14 release against that vendor's distribution of HBase which we should be theoretically compatible with.

{noformat}
java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Scan.setAttribute(Ljava/lang/String;[B)Lorg/apache/hadoop/hbase/client/Scan;
at org.apache.crunch.io.hbase.HBaseSourceTarget.<init>(HBaseSourceTarget.java:112)
at org.apache.crunch.io.hbase.HBaseSourceTarget.<init>(HBaseSourceTarget.java:96)
at org.apache.crunch.io.hbase.HBaseSourceTarget.<init>(HBaseSourceTarget.java:88)
{noformat}


[1] - https://github.com/apache/hbase/blob/rel/0.98.0/hbase-client/src/main/java/org/apache/hadoop/hbase/client/OperationWithAttributes.java#L40
[2] - https://github.com/apache/hbase/blob/rel/1.0.0/hbase-client/src/main/java/org/apache/hadoop/hbase/client/OperationWithAttributes.java#L41



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)