Hi Jacob ! Yes, It looks like PHOENIX-6144
You can try using phoenix-core instead. For 5.x, I plan to explore building a phoenix-client variant that can use external shaded hadoop-client and hbase-client JARs, I'm not sure if have the same protobuf client version problem in 4.x. Istvan On Thu, Mar 4, 2021 at 10:33 PM Jacob Isaac <[email protected]> wrote: > Hi Istvan > > Wondering if you have faced similar errors? > > When trying to use/integrate phoenix-client-hbase-1.6-4.16.0.jar in a > multi-module project which includes other jars/dependencies from hbase, > hadoop and more on the classpath > Getting the following error when trying to create a connection > I have narrowed it down to a couple of jars that are offending although not > completely sure why (perhaps class loading issues?) > hbase-client-xxxx.jar > hbase-protocol-xxxx.jar > > Error: Can't find method newStub in > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService! > (state=08000,code=101) > org.apache.phoenix.exception.PhoenixIOException: Can't find method newStub > in org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService! > at > > org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:146) > at > > org.apache.phoenix.query.ConnectionQueryServicesImpl.checkClientServerCompatibility(ConnectionQueryServicesImpl.java:1593) > at > > org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:1390) > at > > org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1854) > at > > org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:3016) > at > > org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:1098) > at > > org.apache.phoenix.compile.CreateTableCompiler$CreateTableMutationPlan.execute(CreateTableCompiler.java:384) > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:415) > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:397) > at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) > at > > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:396) > at > > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:384) > at > > org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1867) > at > > org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:3195) > at > > org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:3158) > at > > org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76) > at > > org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:3158) > at > > org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255) > at > > org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:142) > at > org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221) > at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157) > at > sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203) > at sqlline.Commands.connect(Commands.java:1064) > at sqlline.Commands.connect(Commands.java:996) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36) > at sqlline.SqlLine.dispatch(SqlLine.java:803) > at sqlline.SqlLine.initArgs(SqlLine.java:588) > at sqlline.SqlLine.begin(SqlLine.java:656) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > 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:48) > at > > org.apache.hadoop.hbase.protobuf.ProtobufUtil.newServiceStub(ProtobufUtil.java:1934) > at org.apache.hadoop.hbase.client.HTable$15.call(HTable.java:1769) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > 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:40) > ... 6 more > -- *István Tóth* | Staff Software Engineer [email protected] <https://www.cloudera.com> [image: Cloudera] <https://www.cloudera.com/> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image: Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera on LinkedIn] <https://www.linkedin.com/company/cloudera> <https://www.cloudera.com/> ------------------------------
