hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Busbey <bus...@apache.org>
Subject Re: Incompatible ProtocolBuffers version for HBase-client 1.0
Date Mon, 20 Mar 2017 14:32:38 GMT
If upgrading is an option, for HBase 1.1+ applications you can use a
newer Protocol Buffers by relying on hbase-shaded-client as a
dependency.

On Sun, Mar 19, 2017 at 12:04 PM, Josh Elser <elserj@apache.org> wrote:
> With Apache HBase 1.0-based applications, you must use Protocol Buffers 2.5
> in its standard package (e.g. com.google.protobuf). If you want to use
> another version of protobuf, you would have to shade and relocate that
> dependency.
>
> In newer versions of HBase (2.0 I believe it will land), does the above
> recommendation (shade+relocate) internally. This would let you use whatever
> version of Protobuf you'd like, regardless of what HBase is using.
>
>
> Hef wrote:
>>
>> I change my application to use ProtocolBuffers 2.5 then this issue
>> resolved.
>>
>>
>> On Fri, Mar 17, 2017 at 12:36 PM, Hef<hef.online@gmail.com>  wrote:
>>
>>> Hi group,
>>> I have a problem using ProtocolBuffers 3 in my application with CDH5.6
>>> HBase 1.0.
>>>
>>> When creating BufferedMutator and flush data into HBase, it shows an
>>> error
>>> as below:
>>>
>>> java.lang.NoClassDefFoundError: Could not initialize class
>>> org.apache.hadoop.hbase.util.ByteStringer
>>> at
>>> org.apache.hadoop.hbase.protobuf.RequestConverter.buildRegionSpecifier(
>>> RequestConverter.java:995)
>>> at org.apache.hadoop.hbase.protobuf.RequestConverter.
>>> buildGetRowOrBeforeRequest(RequestConverter.java:138)
>>> at org.apache.hadoop.hbase.protobuf.ProtobufUtil.
>>> getRowOrBefore(ProtobufUtil.java:1579)
>>> at org.apache.hadoop.hbase.client.ConnectionManager$
>>> HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1293)
>>> at org.apache.hadoop.hbase.client.ConnectionManager$
>>> HConnectionImplementation.locateRegion(ConnectionManager.java:1125)
>>> at org.apache.hadoop.hbase.client.AsyncProcess.submit(
>>> AsyncProcess.java:369)
>>> at org.apache.hadoop.hbase.client.AsyncProcess.submit(
>>> AsyncProcess.java:320)
>>> at org.apache.hadoop.hbase.client.BufferedMutatorImpl.
>>> backgroundFlushCommits(BufferedMutatorImpl.java:198)
>>> at org.apache.hadoop.hbase.client.BufferedMutatorImpl.
>>> doMutate(BufferedMutatorImpl.java:141)
>>> at org.apache.hadoop.hbase.client.BufferedMutatorImpl.
>>> mutate(BufferedMutatorImpl.java:105)
>>>
>>> It looks like HBase is using ProtocolBuffers2.5, which cause the bytecode
>>> incompatible.
>>>
>>> Does anyone has experience of resolving this problem? Or I have to switch
>>> back to protocol 2.5.
>>>
>>>
>>>
>>>
>>
>

Mime
View raw message