Search before asking
Paimon version
1.2.0
<paimon.version>1.2.0</paimon.version>
org.apache.paimon
paimon-bundle
${paimon.version}
lz4-java
org.lz4
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-s3</artifactId>
<version>${paimon.version}</version>
</dependency>
<dependency>
<groupId>org.apache.paimon</groupId>
<artifactId>paimon-oss</artifactId>
<version>${paimon.version}</version>
</dependency>
Compute Engine
StarRocks 3.5.16
Minimal reproduce step
step1: create paimon catalog:
CREATE EXTERNAL CATALOG mrs_paimon
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type"="hive",
"paimon.catalog.warehouse"="obs://hwem-gri-oversea-m241-la-mrs-uat-mex2-oss/bdp/paimon/warehouse",
"hive.metastore.uris"="thrift://[10.205.200.146:9083](http://10.205.200.146:9083/),thrift://[10.205.200.64:9083](http://10.205.200.64:9083/)",
"aws.s3.enable_ssl" = "false",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "[obs.la-north-2.myhuaweicloud.com](http://obs.la-north-2.myhuaweicloud.com/)",
"aws.s3.access_key" = "xxxx",
"aws.s3.secret_key" = "xxxxxxx"
)
USE mrs_paimon;
SHOW DATABASES FROM mrs_paimon;
2. issue query report error
query as follows
SELECT * FROM `mrs_paimon`.`paimon_db`.`my_table` LIMIT 20
FE report error to mysql client:
Error 1064 (HY000): org.apache.paimon.fs.UnsupportedSchemeException:
Could not find a file io implementation for scheme 'obs' in the classpath.
Hadoop FileSystem also cannot access this path
'obs://hwem-gri-oversea-m241-la-mrs-uat-mex2-oss/bdp/paimon/warehouse'.
detail error info in fe.log
(starrocks-mysql-nio-pool-176|11849049) [StmtExecutor.execute():975] execute Exception, sql: SELECT * FROM `mrs_paimon`.`paimon_db`.`my_table` LIMIT 20, error: Getting analyzing error. Detail message: Unknown table 'paimon_db.my_table'.
WARN (starrocks-mysql-nio-pool-176|11849049) [StmtExecutor.logOptimizerTraceOnGenerateExecPlanFailure():697] Generate exec plan failed. Planner profile: query_id=c2661632-4d18-11f1-ad90-fa163e2e29f1, sql=SELECT * FROM `mrs_paimon`.`paimon_db`.`my_table` LIMIT 20, err=SemanticException: Getting analyzing error. Detail message: Unknown table 'paimon_db.my_table'., profile=Planner:
- -- Parser[1] 0
- -- Total[1] 35ms
- -- Analyzer[1] 35ms
- -- Lock[1] 0
- -- AnalyzeDatabase[1] 0
- -- AnalyzeTemporaryTable[1] 0
- -- AnalyzeTable[1] 35ms
Reason:
3. desc paimon table also report error
SHOW CATALOGS;
SHOW CREATE CATALOG mrs_paimon;
SET CATALOG mrs_paimon;
SHOW DATABASES;
USE paimon_db;
desc my_table;
2026-05-12 14:49:25.861+08:00 WARN (starrocks-mysql-nio-pool-1|171)
[StmtExecutor.logOptimizerTraceOnGenerateExecPlanFailure():697] Generate exec plan
Planner profile:
query_id=b73fcf55-4dce-11f1-a1d0-fa163e2e29fa, sql=desc my_table,
err=SemanticException: Getting analyzing error.
Detail message:
Unknown node path: /catalog/mrs_paimon/paimon_db/my_table/schema.
msg: table : my_table not exists., profile=Planner:
--- Parser[1] 1ms
--- Total[1] 37ms
Reason:
2026-05-12 14:49:25.860+08:00 ERROR (starrocks-mysql-nio-pool-1|171)
[PaimonMetadata.getTable():243] Paimon table paimon_db.my_table does not exist.
org.apache.paimon.Catalog$TableNotExistException: Table paimon_db.my_table does not exist.
at org.apache.paimon.hive.HiveCatalog.lambda$loadTableSchema$18(HiveCatalog.java:709)
at java.util.Optional.orElseThrow(Optional.java:403)
at org.apache.paimon.hive.HiveCatalog.loadTableSchema(HiveCatalog.java:709)
at org.apache.paimon.hive.HiveCatalog.loadTableMetadata(HiveCatalog.java:692)
at org.apache.paimon.hive.HiveCatalog.loadTableMetadata(HiveCatalog.java:686)
at org.apache.paimon.catalog.CatalogUtils.loadTable(CatalogUtils.java:200)
at org.apache.paimon.catalog.AbstractCatalog.getTable(AbstractCatalog.java:460)
at org.apache.paimon.catalog.CachingCatalog.getTable(CachingCatalog.java:242)
at com.starrocks.connector.paimon.PaimonMetadata.getTable(PaimonMetadata.java:241)
at com.starrocks.connector.CatalogConnectorMetadata.getTable(CatalogConnectorMetadata.java:148)
at com.starrocks.server.MetadataMgr.lambda$getTables$5(MetadataMgr.java:507)
at java.util.Optional.map(Optional.java:260)
at com.starrocks.server.MetadataMgr.getTable(MetadataMgr.java:507)
at com.starrocks.common.proc.ExternalTablesProcDir.lookup(ExternalTablesProcDir.java:60)
at com.starrocks.common.proc.ProcService.open(ProcService.java:112)
at com.starrocks.sql.analyzer.ShowStmtAnalyzer$ShowStmtAnalyzerVisitor.descExternalCatalogTable(ShowStmtAnalyzer.java:549)
at com.starrocks.sql.analyzer.ShowStmtAnalyzer$ShowStmtAnalyzerVisitor.visitDescTableStmt(ShowStmtAnalyzer.java:368)
at com.starrocks.sql.analyzer.ShowStmtAnalyzer$ShowStmtAnalyzerVisitor.visitDescTableStmt(ShowStmtAnalyzer.java:108)
at com.starrocks.sql.ast.DescribeStmt.accept(DescribeStmt.java:210)
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:102)
at com.starrocks.sql.analyzer.ShowStmtAnalyzer$ShowStmtAnalyzerVisitor.analyze(ShowStmtAnalyzer.java:114)
at com.starrocks.sql.analyzer.ShowStmtAnalyzer.analyze(ShowStmtAnalyzer.java:105)
at com.starrocks.sql.analyzer.Analyzer$AnalyzerVisitor.visitShowStatement(Analyzer.java:432)
at com.starrocks.sql.analyzer.Analyzer$AnalyzerVisitor.visitDescTableStmt(Analyzer.java:190)
at com.starrocks.sql.ast.AstVisitor.visitDescTableStmt(AstVisitor.java:244)
at com.starrocks.sql.ast.DescribeStmt.accept(DescribeStmt.java:210)
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:102)
at com.starrocks.sql.analyzer.Analyzer.analyze(Analyzer.java:187)
at com.starrocks.qe.StmtExecutor.generateExecPlan(StmtExecutor.java:612)
at com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:757)
at com.starrocks.qe.ConnectProcessor.executeQueryStatement(ConnectProcessor.java:547)
at com.starrocks.qe.ConnectProcessor.runWithParserStageRetry(ConnectProcessor.java:435)
at com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:372)
at com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:758)
at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:1148)
at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:71)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
...
step4: Transform obs path into s3 path in catalog ddl, it also does not work.
CREATE EXTERNAL CATALOG mrs_paimon
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "hive",
"paimon.catalog.warehouse" = "s3://hwem-gri-oversea-m241-la-mrs-uat-mex2-oss/bdp/paimon/warehouse",
"hive.metastore.uris" = "thrift://[10.205.200.146:9083](http://10.205.200.146:9083/),thrift://[10.205.200.64:9083](http://10.205.200.64:9083/)",
"aws.s3.enable_ssl" = "true",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "https://obs.la-north-2.myhuaweicloud.com/",
"aws.s3.region" = "la-north-2",
"aws.s3.access_key" = "xxxx",
"aws.s3.secret_key" = "xxxxxxx"
);
CREATE EXTERNAL CATALOG mrs_paimon
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "hive",
"hive.metastore.uris" = "thrift://[10.205.200.146:9083](http://10.205.200.146:9083/),thrift://[10.205.200.64:9083](http://10.205.200.64:9083/)",
"paimon.catalog.warehouse" = "s3a://hwem-gri-oversea-m241-la-mrs-uat-mex2-oss/bdp/paimon/warehouse",
"aws.s3.enable_ssl" = "true",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "[obs.la-north-2.myhuaweicloud.com](http://obs.la-north-2.myhuaweicloud.com/)",
"aws.s3.access_key" = "xxx",
"aws.s3.secret_key" = "xxx"
);
step5: copy paimon-obs-1.2.0.jar into starrocks FE according to community experiences, it also does not work. error as follows
2026-05-13 10:50:52.341+08:00 WARN (starrocks-mysql-nio-pool-2|708) [StmtExecutor.execute():998] execute Exception, sql: SHOW DATABASES FROM `mrs_paimon`
java.lang.NoClassDefFoundError: Could not initialize class okhttp3.internal.concurrent.TaskRunner
at okhttp3.ConnectionPool.(ConnectionPool.kt:41) ~[okhttp-4.10.0.jar:?]
at okhttp3.ConnectionPool.(ConnectionPool.kt:47) ~[okhttp-4.10.0.jar:?]
at okhttp3.OkHttpClient$Builder.(OkHttpClient.kt:471) ~[okhttp-4.10.0.jar:?]
at com.obs.services.internal.utils.RestUtils.initHttpClientBuilder(RestUtils.java:333) ~[?:?]
at com.obs.services.internal.RestStorageService.initHttpClient(RestStorageService.java:177) ~[?:?]
at com.obs.services.ObsClient.init(ObsClient.java:108) ~[?:?]
at com.obs.services.ObsClient.(ObsClient.java:233) ~[?:?]
at org.apache.hadoop.fs.obs.DefaultOBSClientFactory.createObsClientWithoutCredentialsProvider(DefaultOBSClientFactory.java:289) ~[?:?]
at org.apache.hadoop.fs.obs.DefaultOBSClientFactory.createHuaweiObsClient(DefaultOBSClientFactory.java:240) ~[?:?]
at org.apache.hadoop.fs.obs.DefaultOBSClientFactory.createObsClient(DefaultOBSClientFactory.java:359) ~[?:?]
at org.apache.hadoop.fs.obs.OBSFileSystem.initialize(OBSFileSystem.java:286) ~[?:?]
at org.apache.paimon.obs.OBSFileIO.lambda$createFileSystem$0(OBSFileIO.java:133) ~[?:?]
at org.apache.paimon.obs.OBSFileIO.lambda$createFileSystem$1(OBSFileIO.java:141) ~[?:?]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) ~[?:?]
at org.apache.paimon.obs.OBSFileIO.createFileSystem(OBSFileIO.java:140) ~[?:?]
at org.apache.paimon.obs.HadoopCompliantFileIO.getFileSystem(HadoopCompliantFileIO.java:113) ~[?:?]
at org.apache.paimon.obs.HadoopCompliantFileIO.exists(HadoopCompliantFileIO.java:83) ~[?:?]
at org.apache.paimon.fs.PluginFileIO.lambda$exists$4(PluginFileIO.java:67) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.fs.PluginFileIO.wrap(PluginFileIO.java:104) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.fs.PluginFileIO.exists(PluginFileIO.java:67) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.fs.FileIO.checkOrMkdirs(FileIO.java:285) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.hive.HiveCatalog.createHiveCatalog(HiveCatalog.java:1686) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.hive.HiveCatalogFactory.create(HiveCatalogFactory.java:37) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.catalog.CatalogFactory.createUnwrappedCatalog(CatalogFactory.java:84) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:71) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:67) ~[paimon-bundle-1.2.0-cve-patched.jar:?]
at com.starrocks.connector.paimon.PaimonConnector.getPaimonNativeCatalog(PaimonConnector.java:152) ~[starrocks-fe.jar:?]
at com.starrocks.connector.paimon.PaimonConnector.getMetadata(PaimonConnector.java:161) ~[starrocks-fe.jar:?]
at com.starrocks.connector.LazyConnector.getMetadata(LazyConnector.java:42) ~[starrocks-fe.jar:?]
at com.starrocks.connector.CatalogConnector.getMetadata(CatalogConnector.java:45) ~[starrocks-fe.jar:?]
at com.starrocks.server.MetadataMgr$QueryMetadatas.getConnectorMetadata(MetadataMgr.java:119) ~[starrocks-fe.jar:?]
at com.starrocks.server.MetadataMgr.getOptionalMetadata(MetadataMgr.java:204) ~[starrocks-fe.jar:?]
at com.starrocks.server.MetadataMgr.getOptionalMetadata(MetadataMgr.java:181) ~[starrocks-fe.jar:?]
at com.starrocks.server.MetadataMgr.listDbNames(MetadataMgr.java:223) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ShowExecutor$ShowExecutorVisitor.visitShowDatabasesStatement(ShowExecutor.java:465) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ShowExecutor$ShowExecutorVisitor.visitShowDatabasesStatement(ShowExecutor.java:321) ~[starrocks-fe.jar:?]
at com.starrocks.sql.ast.ShowDbStmt.accept(ShowDbStmt.java:99) ~[starrocks-fe.jar:?]
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:102) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ShowExecutor.execute(ShowExecutor.java:318) ~[starrocks-fe.jar:?]
at com.starrocks.qe.StmtExecutor.handleShow(StmtExecutor.java:2233) ~[starrocks-fe.jar:?]
at com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:905) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.executeQueryAttempt(ConnectProcessor.java:547) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.runWithParserStageRetry(ConnectProcessor.java:435) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:372) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:758) ~[starrocks-fe.jar:?]
at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:1148) ~[starrocks-fe.jar:?]
at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:71) ~[starrocks-fe.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoSuchFieldError: Companion [in thread "starrocks-mysql-nio-pool-2"]
at okhttp3.internal.Util.(Util.kt:70) ~[okhttp-4.10.0.jar:?]
at okhttp3.internal.concurrent.TaskRunner.(TaskRunner.kt:309) ~[okhttp-4.10.0.jar:?]
... 50 more
What doesn't meet your expectations?
Paimon catalog StarRocks can access paimon data on OBS.
Anything else?
Use access OBS via Parallel Filesystem instead of object storage, is it the root cause?
Are you willing to submit a PR?
Search before asking
Paimon version
1.2.0
<paimon.version>1.2.0</paimon.version>
org.apache.paimon
paimon-bundle
${paimon.version}
lz4-java
org.lz4
Compute Engine
StarRocks 3.5.16
Minimal reproduce step
step1: create paimon catalog:
CREATE EXTERNAL CATALOG mrs_paimon PROPERTIES ( "type" = "paimon", "paimon.catalog.type"="hive", "paimon.catalog.warehouse"="obs://hwem-gri-oversea-m241-la-mrs-uat-mex2-oss/bdp/paimon/warehouse", "hive.metastore.uris"="thrift://[10.205.200.146:9083](http://10.205.200.146:9083/),thrift://[10.205.200.64:9083](http://10.205.200.64:9083/)", "aws.s3.enable_ssl" = "false", "aws.s3.enable_path_style_access" = "true", "aws.s3.endpoint" = "[obs.la-north-2.myhuaweicloud.com](http://obs.la-north-2.myhuaweicloud.com/)", "aws.s3.access_key" = "xxxx", "aws.s3.secret_key" = "xxxxxxx" ) USE mrs_paimon; SHOW DATABASES FROM mrs_paimon;2. issue query report error
query as follows
FE report error to mysql client:
detail error info in fe.log
3. desc paimon table also report error
step4: Transform obs path into s3 path in catalog ddl, it also does not work.
step5: copy paimon-obs-1.2.0.jar into starrocks FE according to community experiences, it also does not work. error as follows
What doesn't meet your expectations?
Paimon catalog StarRocks can access paimon data on OBS.
Anything else?
Use access OBS via Parallel Filesystem instead of object storage, is it the root cause?
Are you willing to submit a PR?