Feb 01, 2017; 5:21pm
Unable to connect to HBase using Phoenix JDBC Driver
9 posts
|
Hi All,
I am trying to connect to HBase using Phoenix JDBC Driver and getting below error:
This is simple implementation of JDBC connection manager.
=============================================================
Caused by: java.lang.IncompatibleClassChangeError: Class org.apache.hadoop.hbase.protobuf.generated.ClusterIdProtos$ClusterId$Builder does not implement the requested interface org.apache.hadoop.hbase.shaded.com.google.protobuf.Message$Builder
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.mergeFrom(ProtobufUtil.java:3154)
at org.apache.hadoop.hbase.ClusterId.parseFrom(ClusterId.java:69)
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:879)
at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:635)
=============================================================
Based on my research it seems, I need to use some shaded package of phoenix-client. I am not able to figure it out.
|
Feb 01, 2017; 5:26pm
Re: Unable to connect to HBase using Phoenix JDBC Driver
9 posts
|
Apologies, I missed important details.
Phoenix version: 4.9.0-HBase-1.1
HBase Version: 1.1.2
On 1 February 2017 at 14:51, Dhaval Modi <[hidden email]> wrote:
... [show rest of quote]
|
Feb 01, 2017; 11:37pm
Re: Unable to connect to HBase using Phoenix JDBC Driver
2 posts
|
Hi Dhaval,
Have you added HBase-protocol jar in your dependencies?
This error shows that you have either the incompatible version of HBase-protocol jar or you are missing it( might be missed out from the classpath).
Try to include the proper version(for this case 1.1.2) of the jar or set this jar as HADOOP_CLASSPATH and see if it works.
Regards,
Kumar Anshuman
|
Feb 01, 2017; 11:49pm
Re: Unable to connect to HBase using Phoenix JDBC Driver
9 posts
|
Thanks Anshuman. It was really helpful.
I added HBase-protocol jar in dependency and it got resolved.
But now I am getting different error:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Caused by: java.lang.IllegalArgumentException: Can't find method newStub in org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService!
at org.apache.hadoop.hbase.util.Methods.call(Methods.java:45)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.newServiceStub(ProtobufUtil.java:1675)
at org.apache.hadoop.hbase.client.HTable$16.call(HTable.java:1750)
... 4 more
Caused by: java.lang.NoSuchMethodException: org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.newStub(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcChannel)
at java.lang.Class.getMethod(Class.java:1786)
at org.apache.hadoop.hbase.util.Methods.call(Methods.java:38)
... 6 more
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
On 1 February 2017 at 21:07, Kumar Anshuman <[hidden email]> wrote:
|
Feb 02, 2017; 1:56am
Re: Unable to connect to HBase using Phoenix JDBC Driver
2 posts
|
Hi Dhaval,
This error seems to be due to HBase and Phoenix jar version's mismatch or due to missing of dependency for HBase-protocol-{version}.jar or HBase-protobuff-{version}.jar, you will have to check the proper version of the HBase jars and Phoenix jars used, Please check the versions and validate the different alternatives suggested and try again and inform me if it works or not.
Regards,
Kumar Anshuman
On Wed, Feb 1, 2017 at 9:41 PM, Kumar Anshuman <[hidden email]> wrote:
... [show rest of quote]
|
Feb 02, 2017; 2:08am
Re: Unable to connect to HBase using Phoenix JDBC Driver
524 posts
|
Sounds like you're using the wrong jar on the server side. Or perhaps you're using a vendor distribution (in which case you'll need to use their supported Phoenix version). Please review the installation instructions as everything you need is in the one single jar.
Thanks,
James
On Wed, Feb 1, 2017 at 9:56 AM Kumar Anshuman <[hidden email]> wrote:
... [show rest of quote]
|
Feb 02, 2017; 5:58pm
Re: Unable to connect to HBase using Phoenix JDBC Driver
9 posts
|
Hi Anshuman & James,
Thanks for your input.
This issue is resolved. The main reason was the use of HBase-shaded-client as forced dependency.
I removed it and issue got resolved.
On 1 February 2017 at 23:38, James Taylor <[hidden email]> wrote:
... [show rest of quote]
|
Feb 10, 2017; 3:07am
Re: Unable to connect to HBase using Phoenix JDBC Driver
2 posts
|
This post has NOT been accepted by the mailing list yet.
Hi Anshuman, James & Dhaval,
I am facing the same issue on HDP 2.3 with HBase version 1.1.1.2.3 and Phoenix version 4.4.0. I have been struggling to successfully run a MapReduce job that dumps its data into Phoenix. I have already HBase-shaded-client jar, but it doesn't exist on my disk. The MapReduce job that I am running comes bundled with Phoenix (its CSVBulkLoader class). This job is running perfectly fine on my dev cluster which consists of the same stack. I have tried to include hbase-protocol into my application classpath but the error doesn't go away. Please help me as I have been stuck on this issue for long. Thanks for the help :) |
Feb 10, 2017; 3:11am
Re: Unable to connect to HBase using Phoenix JDBC Driver
2 posts
|
This post has NOT been accepted by the mailing list yet.
The error trace is as follows:
Error: java.lang.RuntimeException: java.sql.SQLException: ERROR 2006 (INT08): Incompatible jars detected between client and server. Ensure that phoenix.jar is put on the classpath of HBase in every region server: Can't find method newStub in org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService! at org.apache.phoenix.mapreduce.CsvToKeyValueMapper.setup(CsvToKeyValueMapper.java:121) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162) Caused by: java.sql.SQLException: ERROR 2006 (INT08): Incompatible jars detected between client and server. Ensure that phoenix.jar is put on the classpath of HBase in every region server: Can't find method newStub in org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService! at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:386) at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145) at org.apache.phoenix.query.ConnectionQueryServicesImpl.checkClientServerCompatibility(ConnectionQueryServicesImpl.java:987) at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:861) at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1175) at org.apache.phoenix.query.DelegateConnectionQueryServices.createTable(DelegateConnectionQueryServices.java:112) at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1907) at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:745) at org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:186) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:305) at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:297) at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:295) at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1244) at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1851) at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1820) at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77) at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1820) at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180) at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132) at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:208) at org.apache.phoenix.util.QueryUtil.getConnection(QueryUtil.java:299) at org.apache.phoenix.mapreduce.CsvToKeyValueMapper.setup(CsvToKeyValueMapper.java:119) ... 8 more Caused by: java.lang.IllegalArgumentException: Can't find method newStub in org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService! at org.apache.hadoop.hbase.util.Methods.call(Methods.java:45) at org.apache.hadoop.hbase.protobuf.ProtobufUtil.newServiceStub(ProtobufUtil.java:1669) at org.apache.hadoop.hbase.client.HTable$16.call(HTable.java:1750) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoSuchMethodException: org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.newStub(com.google.protobuf.RpcChannel) at java.lang.Class.getMethod(Class.java:1786) at org.apache.hadoop.hbase.util.Methods.call(Methods.java:38) ... 6 more |
« Return to Apache Phoenix User List | 1168 views