Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Incomplete
-
0.11
-
None
-
None
-
None
Description
HBase 0.95+ support has been added via PIG-3390. Whereas pig can be compiled against both 0.94 and 0.95, due to binary incompatibilities inside HBase, pig compiled against HBase 0.95 can't be used against 0.94 and vice versa.
One of the issue we are facing is HBase class RowFilter, that changed constructor between the two HBase releases:
- HBase 0.94 RowFilter(CompareOp, WritableByteArrayComparable)
- HBase 0.95 RowFilter(CompareO, ByteArrayComparable)
We are using children of the classes used in second parameter and therefore the same code compiles against both HBase versions. However as the entire constructor signature is saved into compiled Java class, generated binaries are compatible with only one HBase version.
As we're releasing only one pig binary, it would be useful to make Pig compatible with both versions at the same time.