As Stack said. You can try the hbase-shaded-client if you can not upgrade your protobuf version.
Thanks. On Tue, Dec 5, 2017 at 10:00 AM Stack <[email protected]> wrote: > On Mon, Dec 4, 2017 at 10:10 PM, Manjeet Singh <[email protected] > > > wrote: > > > Thanks for your reply, I have two different projects which took records > > from Hbase > > 1 Project is spark job and using solr for free text search -Here we are > > using ProtoBuff > > 2 Project is for pointed access (where I know exact rowkey)- Here we are > > not using ProtoBuff and we are getting Exception here on creation of > Table > > object. > > > > In both case we are using Hbase Native API if Hbase internally using > > protobuff 2.5.0 so why my project 1 is working fine this question is > comes > > to my mind > > > > > Because order of protobuf jars is different between the two usages? > St.Ack > > > > > > Thanks > > Manjeet Singh > > > > ---------- Forwarded message ---------- > > From: Stack <[email protected]> > > Date: Tue, Dec 5, 2017 at 3:36 AM > > Subject: Re: what is the role of ProtoBuffer while creating of instance > of > > Table/Htable > > To: Hbase-User <[email protected]> > > > > > > HBase uses pb2.5.0. Is it an incompatibility between 2.4.1 and 2.5.0 pb? > If > > you look at classpath, is your projects 2.4.1 pb jar coming ahead of the > > hbase pb jar? > > Thanks, > > S > > > > On Sun, Dec 3, 2017 at 10:52 AM, Manjeet Singh < > [email protected] > > > > > wrote: > > > > > Hi All, > > > > > > I am facing one issue where I have two different DAL in one project > i.e. > > > 1. DAL simply build using java and Native API. > > > 2. Spark Job using Java and Native API. (Also using protocol buffer in > > this > > > project) > > > > > > In our Project the second one is having ( the spark job one) > > implementation > > > of searching using solr here we are using protocol buffere for some > > > different business needs. > > > In First it was simple java native code were we are accessing Hbase > using > > > simple Get by passing Rowkey. > > > > > > These project also work fine if I run these two sepratlly but when I > > > clube thse with from one UI and try to execute our use cases I got > below > > > exception > > > > > > It's clear that its something about protocol buffer... > > > > > > We have compiled classes of protocol buffer using below dependecies > > > > > > > > > <dependency> > > > <groupId>com.google.protobuf</groupId> > > > <artifactId>protobuf-java</artifactId> > > > <version>2.4.1</version> > > > <scope>provided</scope> > > > </dependency> > > > > > > > > > > > > > > > Hbase :- > > > > > > <dependency> > > > <groupId>org.apache.hbase</groupId> > > > <artifactId>hbase-client</artifactId> > > > <version>1.2.0-cdh5.8.0</version> > > > <scope>compile</scope> > > > <exclusions> > > > <exclusion> > > > <artifactId>jdk.tools</artifactId> > > > <groupId>jdk.tools</groupId> > > > </exclusion> > > > </exclusions> > > > </dependency> > > > > > > > > > java.io.IOException: java.lang.reflect.InvocationTargetException > > > at > > > org.apache.hadoop.hbase.client.ConnectionFactory.createConnection( > > > ConnectionFactory.java:240) > > > at > > > org.apache.hadoop.hbase.client.ConnectionFactory.createConnection( > > > ConnectionFactory.java:218) > > > at > > > org.apache.hadoop.hbase.client.ConnectionFactory.createConnection( > > > ConnectionFactory.java:119) > > > Caused by: java.lang.reflect.InvocationTargetException > > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > > > at > > > sun.reflect.NativeConstructorAccessorImpl.newInstance( > > > NativeConstructorAccessorImpl.java:62) > > > at > > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance( > > > DelegatingConstructorAccessorImpl.java:45) > > > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > > > at > > > org.apache.hadoop.hbase.client.ConnectionFactory.createConnection( > > > ConnectionFactory.java:238) > > > ... 15 more > > > Caused by: java.lang.VerifyError: class > > > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$Result > overrides > > > final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet; > > > at java.lang.ClassLoader.defineClass1(Native Method) > > > at java.lang.ClassLoader.defineClass(ClassLoader.java:763) > > > at java.security.SecureClassLoader.defineClass( > > SecureClassLoader.java:142) > > > at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) > > > at java.net.URLClassLoader.access$100(URLClassLoader.java:73) > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:368) > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:362) > > > at java.security.AccessController.doPrivileged(Native Method) > > > at java.net.URLClassLoader.findClass(URLClassLoader.java:361) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > > > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > > > at > > > org.apache.hadoop.hbase.protobuf.ProtobufUtil.<clinit> > > > (ProtobufUtil.java:210) > > > at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:64) > > > at > > > org.apache.hadoop.hbase.zookeeper.ZKClusterId.readClusterIdZNode( > > > ZKClusterId.java:75) > > > at > > > org.apache.hadoop.hbase.client.ZooKeeperRegistry.getClusterId( > > > ZooKeeperRegistry.java:105) > > > at > > > org.apache.hadoop.hbase.client.ConnectionManager$ > > > HConnectionImplementation.retrieveClusterId(ConnectionManager.java:919) > > > at > > > org.apache.hadoop.hbase.client.ConnectionManager$ > > > HConnectionImplementation.<init>(ConnectionManager.java:657) > > > ... 20 more > > > > > > > > > Can anyone help me to fix this issue using protobuff 2.4.1 version only > > > > > > Thanks > > > Manjeet Singh > > > > > > > > > > > -- > > luv all > > >
