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)