Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # dev - Re: 1.5.0-SNAPSHOT conflicting with hbase-proto 0.96.x


Copy link to this message
-
Re: 1.5.0-SNAPSHOT conflicting with hbase-proto 0.96.x
Andrew Purtell 2014-01-27, 18:21
This will be fixed (at least) in the 0.98.0 release.
On Sun, Jan 26, 2014 at 6:36 PM, tsuna <[EMAIL PROTECTED]> wrote:

> Yes, I just ran into the same issue.  Sigh.  I guess one workaround is
> to try to make AsyncHBase's jar show up first on the class path,
> although that's not always as easy to do as it might sound.
>
> I'm copying hbase-dev so that they are aware of the problem.  My trick
> was ported to HBase in HBASE-9867, but it wasn't ported properly.  It
> doesn't look like the zeroCopyGetBytes helper is used in HBase (I
> checked 0.96, 0.98, and trunk).  So the best course of action seems to
> be to fix the signature of the method in HBase.
>
> I created an issue and proposed a patch for HBase here:
> https://issues.apache.org/jira/browse/HBASE-10422
>
> On Tue, Jan 14, 2014 at 1:49 AM,  <[EMAIL PROTECTED]> wrote:
> > * hbase-protocol-0.96.1.1-hadoop2.jar
> > * asynchbase-1.5.0-SNAPSHOT.jar
> >
> > Both packages contains class
> > "com.google.protobuf.ZeroCopyLiteralByteString", but with different API:
> > * public static byte[] zeroCopyGetBytes(ByteString buf)
> > * public static byte[] zeroCopyGetBytes(final LiteralByteString buf)
> >
> >
> > When running a program with both dependencies, following error will
> occur in
> > most cases:
> >
> > 14/01/14 13:45:41 ERROR async.RegionClient:1093 - Unexpected exception
> from
> > downstream on [id: 0x33adfae4, /127.0.0.1:37648 => /127.0.0.1:34508]
> > java.lang.NoSuchMethodError:
> >
> com.google.protobuf.ZeroCopyLiteralByteString.zeroCopyGetBytes(Lcom/google/protobuf/ByteString;)[B
> >     at org.hbase.async.Bytes.get(Bytes.java:297)
> >     at org.hbase.async.KeyValue.fromCell(KeyValue.java:311)
> >     at org.hbase.async.GetRequest.convertResult(GetRequest.java:514)
> >     at org.hbase.async.GetRequest.extractResponse(GetRequest.java:496)
> >     at
> >
> org.hbase.async.RegionClient$1GetClosestRowBefore.deserialize(RegionClient.java:651)
> >     at org.hbase.async.RegionClient.decode(RegionClient.java:1308)
> >     at org.hbase.async.RegionClient.decode(RegionClient.java:89)
> >     at
> >
> org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500)
> >     at
> >
> org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
> >     at
> org.hbase.async.RegionClient.handleUpstream(RegionClient.java:1080)
> >     at
> >
> org.hbase.async.HBaseClient$RegionClientPipeline.sendUpstream(HBaseClient.java:2652)
> >     at
> > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
> >     at
> > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
> >     at
> org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
> >     at
> >
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
> >     at
> >
> org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
> >     at
> >
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
> >     at
> org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
> >     at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >     at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >     at java.lang.Thread.run(Thread.java:744)
> >
> > It will be very simple to rename ZeroCopyLiteralByteString class in
> > asynchbase into something different and republish new jar.
> > Hope, someone may propose better solution.
>
>
>
> --
> Benoit "tsuna" Sigoure
>

--
Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)