Hi Renato,

At a higher level we've more or less agreed on continuing our support
for the 0.90.X HBase branch. As I am not personally using HBase I was
only too happy to see this being the case.
Undoubtedly there will be API discrepancies between different HBase
versions which therefore makes interoperability difficult in
supporting various versions through Gora.

I see the most recent version (from this branch) as 0.90.6 so this
might be the best place to start.

Lewis


On Thu, Aug 30, 2012 at 5:16 PM, Renato Marroquín Mogrovejo
<[email protected]> wrote:
> Hi Lewis,
>
> I added this to the main pom, but I am not sure if this is correct
> because I guess HBase 0.94.1 still needs Avro 1.6 to work right? or
> does this makes the HBase module not to fetch Avro 1.3?
>
>             <dependency>
>                 <groupId>org.apache.hbase</groupId>
>                 <artifactId>hbase</artifactId>
>                 <version>${hbase.version}</version>
>                 <exclusions>
>                     <exclusion>
>                         <groupId>org.apache.hbase</groupId>
>                         <artifactId>avro</artifactId>
>                     </exclusion>
>                 </exclusions>
>             </dependency>
>
> Anyways I started adding all the new methods for this HBase version
> but there are just many things to add. I mean the avro things are not
> so problematic but I was asked about HBaseTableConnection class which
> implements HTableInterface that now needs this method:
>
> @Override
>   <T extends CoprocessorProtocol,R> Map<byte[],R>
> coprocessorExec(Class<T> protocol,
>           byte[] startKey,
>           byte[] endKey,
>           Batch.Call<T,R> callable) throws IOException, Throwable{
>           return null;
>   }
>
> And this in turn needs the Batch interface from
> org.apache.hadoop.hbase.client.coprocessor, I think there are still a
> few things to be done before 0.94.1. I will download 0.90.4 and play
> with now until we upgrade our avro dependencies (:
>
>
> Renato M.
>
>
> 2012/8/30 Lewis John Mcgibbney <[email protected]>:
>> Hi Renato,
>>
>> On Thu, Aug 30, 2012 at 6:52 AM, Renato Marroquín Mogrovejo
>> <[email protected]> wrote:
>>
>> You may wish to add an exclusion for the transitive avro dependency
>> which is pulled when fetching hbase 0.04.1 artifact.
>> The 1st two errors (avro specific) make sense if you check out the
>> Javadoc for our current Avro 1.3.3 implementation [0] and the HBase
>> 0.94.1 implementation [1]. Navigate the the BinaryEncoder class.
>>
>> [0] http://avro.apache.org/docs/1.3.3/api/java/index.html
>> [1] http://avro.apache.org/docs/1.5.3/api/java/index.html
>>
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/util/HBaseByteInterface.java:[58,22]
>>> org.apache.gora.hbase.util.HBaseByteInterface.BinaryEncoderWithStream
>>> is not abstract and does not override abstract method bytesBuffered()
>>> in org.apache.avro.io.BinaryEncoder
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/util/HBaseByteInterface.java:[60,6]
>>> cannot find symbol
>>> [ERROR] symbol  : constructor BinaryEncoder(java.io.OutputStream)
>>> [ERROR] location: class org.apache.avro.io.BinaryEncoder
>>
>> In all honesty from looking at the remainder of the errors they looks
>> like changes to the Hbase API resulting in conflicts in the way we
>> currrently use the HBase API in Gora. This would require some updating
>> to the Gora HBase classes.
>>
>> hth
>>
>> Lewis
>>
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/util/HBaseByteInterface.java:[64,13]
>>> cannot find symbol
>>> [ERROR] symbol  : variable out
>>> [ERROR] location: class
>>> org.apache.gora.hbase.util.HBaseByteInterface.BinaryEncoderWithStream
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/util/HBaseByteInterface.java:[204,13]
>>> cannot find symbol
>>> [ERROR] symbol  : method flush()
>>> [ERROR] location: class
>>> org.apache.gora.hbase.util.HBaseByteInterface.BinaryEncoderWithStream
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseTableConnection.java:[46,7]
>>> org.apache.gora.hbase.store.HBaseTableConnection is not abstract and
>>> does not override abstract method
>>> <T,R>coprocessorExec(java.lang.Class<T>,byte[],byte[],org.apache.hadoop.hbase.client.coprocessor.Batch.Call<T,R>,org.apache.hadoop.hbase.client.coprocessor.Batch.Callback<R>)
>>> in org.apache.hadoop.hbase.client.HTableInterface
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseTableConnection.java:[147,2]
>>> method does not override or implement a method from a supertype
>>> [ERROR] 
>>> /Users/renatomarroquin/Documents/workspace/gora-trunk/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseTableConnection.java:[153,2]
>>> method does not override or implement a method from a supertype
>>
>>
>>
>> --
>> Lewis



-- 
Lewis

Reply via email to