Qingsheng Ren created FLINK-29218: ------------------------------------- Summary: ADD JAR syntax could not work with Hive catalog in SQL client Key: FLINK-29218 URL: https://issues.apache.org/jira/browse/FLINK-29218 Project: Flink Issue Type: Bug Components: Connectors / Hive, Table SQL / API Affects Versions: 1.16.0 Reporter: Qingsheng Ren Assignee: dalongliu
ADD JAR syntax is not working for adding Hive / Hadoop dependencies into SQL client. To reproduce the problem: # Place Hive connector and Hadoop JAR outside {{{}lib{}}}, and add them into the session using {{ADD JAR}} syntax. # Create a Hive catalog using {{CREATE CATALOG}} Exception thrown by SQL client: {code:java} 2022-09-07 15:23:15,737 WARN org.apache.flink.table.client.cli.CliClient [] - Could not execute SQL statement. org.apache.flink.table.client.gateway.SqlExecutionException: Could not execute SQL statement. at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:208) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeOperation(CliClient.java:634) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.callOperation(CliClient.java:468) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeOperation(CliClient.java:371) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.getAndExecuteStatements(CliClient.java:328) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeInteractive(CliClient.java:279) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeInInteractiveMode(CliClient.java:227) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.openCli(SqlClient.java:151) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.start(SqlClient.java:95) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.startClient(SqlClient.java:187) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.main(SqlClient.java:161) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] Caused by: org.apache.flink.table.api.ValidationException: Unable to create catalog 'myhive'.Catalog options are: 'hive-conf-dir'='file:///Users/renqs/Workspaces/flink/flink-master/build-target/opt/hive-conf' 'type'='hive' at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:438) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1423) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more Caused by: org.apache.flink.table.catalog.exceptions.CatalogException: Failed to load hive-site.xml from specified path:file:/Users/renqs/Workspaces/flink/flink-master/build-target/opt/hive-conf/hive-site.xml at org.apache.flink.table.catalog.hive.HiveCatalog.createHiveConf(HiveCatalog.java:273) ~[?:?] at org.apache.flink.table.catalog.hive.HiveCatalog.<init>(HiveCatalog.java:184) ~[?:?] at org.apache.flink.table.catalog.hive.factories.HiveCatalogFactory.createCatalog(HiveCatalogFactory.java:76) ~[?:?] at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:435) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1423) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more Caused by: java.io.IOException: No FileSystem for scheme: file at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2799) ~[?:?] at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2810) ~[?:?] at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:100) ~[?:?] at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2849) ~[?:?] at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2831) ~[?:?] at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:389) ~[?:?] at org.apache.hadoop.fs.Path.getFileSystem(Path.java:356) ~[?:?] at org.apache.flink.table.catalog.hive.HiveCatalog.createHiveConf(HiveCatalog.java:268) ~[?:?] at org.apache.flink.table.catalog.hive.HiveCatalog.<init>(HiveCatalog.java:184) ~[?:?] at org.apache.flink.table.catalog.hive.factories.HiveCatalogFactory.createCatalog(HiveCatalogFactory.java:76) ~[?:?] at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:435) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1423) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more {code} Another test: # Put Hadoop JAR inside {{{}lib{}}}, and Hive connector outside, then add Hive connector JAR into the session with {{ADD JAR}} syntax # Create a Hive catalog using {{CREATE CATALOG}} Exception thrown by SQL client: {code:java} 2022-09-07 15:29:57,362 WARN org.apache.flink.table.client.cli.CliClient [] - Could not execute SQL statement. org.apache.flink.table.client.gateway.SqlExecutionException: Could not execute SQL statement. at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:208) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeOperation(CliClient.java:634) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.callOperation(CliClient.java:468) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeOperation(CliClient.java:371) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.getAndExecuteStatements(CliClient.java:328) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeInteractive(CliClient.java:279) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.cli.CliClient.executeInInteractiveMode(CliClient.java:227) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.openCli(SqlClient.java:151) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.start(SqlClient.java:95) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.startClient(SqlClient.java:187) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.SqlClient.main(SqlClient.java:161) [flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] Caused by: org.apache.flink.table.api.ValidationException: Could not execute CREATE CATALOG: (catalogName: [myhive], properties: [{hive-conf-dir=file:///Users/renqs/Workspaces/flink/flink-master/build-target/opt/hive-conf, type=hive}]) at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1432) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more Caused by: org.apache.flink.table.catalog.exceptions.CatalogException: Failed to create Hive Metastore client at org.apache.flink.table.catalog.hive.client.HiveShimV230.getHiveMetastoreClient(HiveShimV230.java:74) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.createMetastoreClient(HiveMetastoreClientWrapper.java:283) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.<init>(HiveMetastoreClientWrapper.java:84) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.<init>(HiveMetastoreClientWrapper.java:74) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientFactory.create(HiveMetastoreClientFactory.java:32) ~[?:?] at org.apache.flink.table.catalog.hive.HiveCatalog.open(HiveCatalog.java:300) ~[?:?] at org.apache.flink.table.catalog.CatalogManager.registerCatalog(CatalogManager.java:211) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1428) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292] at org.apache.flink.table.catalog.hive.client.HiveShimV230.getHiveMetastoreClient(HiveShimV230.java:72) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.createMetastoreClient(HiveMetastoreClientWrapper.java:283) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.<init>(HiveMetastoreClientWrapper.java:84) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.<init>(HiveMetastoreClientWrapper.java:74) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientFactory.create(HiveMetastoreClientFactory.java:32) ~[?:?] at org.apache.flink.table.catalog.hive.HiveCatalog.open(HiveCatalog.java:300) ~[?:?] at org.apache.flink.table.catalog.CatalogManager.registerCatalog(CatalogManager.java:211) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1428) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more Caused by: org.apache.hadoop.hive.metastore.api.MetaException: org.apache.hadoop.hive.metastore.HiveMetaStoreClient class not found at org.apache.hadoop.hive.metastore.MetaStoreUtils.getClass(MetaStoreUtils.java:1710) ~[?:?] at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:131) ~[?:?] at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:89) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_292] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_292] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292] at org.apache.flink.table.catalog.hive.client.HiveShimV230.getHiveMetastoreClient(HiveShimV230.java:72) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.createMetastoreClient(HiveMetastoreClientWrapper.java:283) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.<init>(HiveMetastoreClientWrapper.java:84) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientWrapper.<init>(HiveMetastoreClientWrapper.java:74) ~[?:?] at org.apache.flink.table.catalog.hive.client.HiveMetastoreClientFactory.create(HiveMetastoreClientFactory.java:32) ~[?:?] at org.apache.flink.table.catalog.hive.HiveCatalog.open(HiveCatalog.java:300) ~[?:?] at org.apache.flink.table.catalog.CatalogManager.registerCatalog(CatalogManager.java:211) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.createCatalog(TableEnvironmentImpl.java:1428) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeInternal(TableEnvironmentImpl.java:1165) ~[flink-table-api-java-uber-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] at org.apache.flink.table.client.gateway.local.LocalExecutor.executeOperation(LocalExecutor.java:206) ~[flink-sql-client-1.16-SNAPSHOT.jar:1.16-SNAPSHOT] ... 10 more {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)