Trino 抛出 'java.lang.NoSuchMethodError: org.apache.phoenix.query.ConnectionQueryServices.getAdmin() 异常,

问题描述

我尝试使用使用 phoenix 作为连接器的 Trino 获取一些数据,但出现以下错误

$("#share-article").on("mouseenter","a",function(){
    $(this).css("width","70px");
});

$("#share-article").on("mouseleave","50px");
});

我使用 HBase 2.3.4 和 Hadoop 3.2.2 和 Phoenix 5.1.0

我还将正确版本的 Phoenix 客户端复制到 /path/to/trino/plugin 并将其服务器复制到 /path/to/HBase/lib/

我不得不提一下,trino 可以创建表或显示模式的内容,但我不能使用 java.lang.NoSuchMethodError: 'org.apache.hadoop.hbase.client.HBaseAdmin org.apache.phoenix.query.ConnectionQueryServices.getAdmin()' at io.trino.plugin.phoenix.PhoenixClient.getTableProperties(PhoenixClient.java:568) at io.trino.plugin.phoenix.PhoenixMetadata.getTableMetadata(PhoenixMetadata.java:98) at io.trino.plugin.phoenix.PhoenixMetadata.getTableMetadata(PhoenixMetadata.java:88) at io.trino.plugin.jdbc.JdbcMetadata.lambda$listTableColumns$4(JdbcMetadata.java:371) at java.base/java.util.Optional.ifPresent(Optional.java:183) at io.trino.plugin.jdbc.JdbcMetadata.listTableColumns(JdbcMetadata.java:371) at io.trino.plugin.base.classloader.ClassLoaderSafeConnectorMetadata.listTableColumns(ClassLoaderSafeConnectorMetadata.java:272) at io.trino.Metadata.MetadataManager.listTableColumns(MetadataManager.java:607) at io.trino.Metadata.MetadataListing.listTableColumns(MetadataListing.java:135) at io.trino.connector.informationschema.informationSchemaPageSource.addColumnsRecords(informationSchemaPageSource.java:251) at io.trino.connector.informationschema.informationSchemaPageSource.buildPages(informationSchemaPageSource.java:216) at io.trino.connector.informationschema.informationSchemaPageSource.getNextPage(informationSchemaPageSource.java:183) at io.trino.operator.ScanFilterandProjectOperator$ConnectorPageSourcetoPages.process(ScanFilterandProjectOperator.java:376) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221) at io.trino.operator.WorkProcessorUtils$YieldingProcess.process(WorkProcessorUtils.java:181) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:306) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:306) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:306) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221) at io.trino.operator.WorkProcessorUtils.lambda$processstateMonitor$2(WorkProcessorUtils.java:200) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils.lambda$flatten$6(WorkProcessorUtils.java:277) at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:319) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:306) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221) at io.trino.operator.WorkProcessorUtils.lambda$processstateMonitor$2(WorkProcessorUtils.java:200) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221) at io.trino.operator.WorkProcessorUtils.lambda$finishWhen$3(WorkProcessorUtils.java:215) at io.trino.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372) at io.trino.operator.WorkProcessorSourceOperatorAdapter.getoutput(WorkProcessorSourceOperatorAdapter.java:149) at io.trino.operator.Driver.processInternal(Driver.java:387) at io.trino.operator.Driver.lambda$processFor$9(Driver.java:291) at io.trino.operator.Driver.tryWithLock(Driver.java:683) at io.trino.operator.Driver.processFor(Driver.java:284) at io.trino.execution.sqlTaskExecution$DriverSplitRunner.processFor(sqlTaskExecution.java:1076) at io.trino.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:163) at io.trino.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:484) at io.trino.$gen.Trino_352____20210213_131405_2.run(UnkNown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) select 查询

解决方法

Trino Phoenix 连接器尚不支持 Phoenix 5.x。 您可以跟踪此 https://github.com/trinodb/trino/issues/1271 的问题。还有一个 PR https://github.com/trinodb/trino/pull/6865,您可以自己尝试一下。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...