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

Reply via email to