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 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
