[ 
https://issues.apache.org/jira/browse/FLINK-30001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17633497#comment-17633497
 ] 

xiaohang.li commented on FLINK-30001:
-------------------------------------

经查询,
默认情况下 flink 中的 org.apache.flink.table.planner.loader.PlannerModule 模块使用 /tmp 
目录来作为临时的工作路径,因此会尝试调用 jave 的 java.nio.file.Files 类来创建这个目录,但是如果  /tmp 目录是一个指向 
/mnt/tmp 的符号软链接,这种情况 java.nio.file.Files 
类无法处理,从而导致出现报错。需要在sql-client.sh添加临时路径的配置:
  export JVM_ARGS="-Djava.io.tmpdir=/mnt/tmp

> sql-client.sh start failed
> --------------------------
>
>                 Key: FLINK-30001
>                 URL: https://issues.apache.org/jira/browse/FLINK-30001
>             Project: Flink
>          Issue Type: Bug
>          Components: Command Line Client
>    Affects Versions: 1.16.0, 1.15.2
>            Reporter: xiaohang.li
>            Priority: Major
>
> [hadoop@master flink-1.15.0]$ ./bin/sql-client.sh 
> Setting HADOOP_CONF_DIR=/etc/hadoop/conf because no HADOOP_CONF_DIR or 
> HADOOP_CLASSPATH was set.
> Setting HBASE_CONF_DIR=/etc/hbase/conf because no HBASE_CONF_DIR was set.
> Exception in thread "main" org.apache.flink.table.client.SqlClientException: 
> Unexpected exception. This is a bug. Please consider filing an issue.
>         at 
> org.apache.flink.table.client.SqlClient.startClient(SqlClient.java:201)
>         at org.apache.flink.table.client.SqlClient.main(SqlClient.java:161)
> Caused by: org.apache.flink.table.api.TableException: Could not instantiate 
> the executor. Make sure a planner module is on the classpath
>         at 
> org.apache.flink.table.client.gateway.context.ExecutionContext.lookupExecutor(ExecutionContext.java:163)
>         at 
> org.apache.flink.table.client.gateway.context.ExecutionContext.createTableEnvironment(ExecutionContext.java:111)
>         at 
> org.apache.flink.table.client.gateway.context.ExecutionContext.<init>(ExecutionContext.java:66)
>         at 
> org.apache.flink.table.client.gateway.context.SessionContext.create(SessionContext.java:247)
>         at 
> org.apache.flink.table.client.gateway.local.LocalContextUtils.buildSessionContext(LocalContextUtils.java:87)
>         at 
> org.apache.flink.table.client.gateway.local.LocalExecutor.openSession(LocalExecutor.java:87)
>         at org.apache.flink.table.client.SqlClient.start(SqlClient.java:88)
>         at 
> org.apache.flink.table.client.SqlClient.startClient(SqlClient.java:187)
>         ... 1 more
> Caused by: org.apache.flink.table.api.TableException: Unexpected error when 
> trying to load service provider for factories.
>         at 
> org.apache.flink.table.factories.FactoryUtil.lambda$discoverFactories$19(FactoryUtil.java:813)
>         at java.util.ArrayList.forEach(ArrayList.java:1259)
>         at 
> org.apache.flink.table.factories.FactoryUtil.discoverFactories(FactoryUtil.java:799)
>         at 
> org.apache.flink.table.factories.FactoryUtil.discoverFactory(FactoryUtil.java:517)
>         at 
> org.apache.flink.table.client.gateway.context.ExecutionContext.lookupExecutor(ExecutionContext.java:154)
>         ... 8 more
> Caused by: java.util.ServiceConfigurationError: 
> org.apache.flink.table.factories.Factory: Provider 
> org.apache.flink.table.planner.loader.DelegateExecutorFactory could not be 
> instantiated
>         at java.util.ServiceLoader.fail(ServiceLoader.java:232)
>         at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
>         at 
> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
>         at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>         at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>         at 
> org.apache.flink.table.factories.ServiceLoaderUtil.load(ServiceLoaderUtil.java:42)
>         at 
> org.apache.flink.table.factories.FactoryUtil.discoverFactories(FactoryUtil.java:798)
>         ... 10 more
> Caused by: java.lang.ExceptionInInitializerError
>         at 
> org.apache.flink.table.planner.loader.PlannerModule.getInstance(PlannerModule.java:135)
>         at 
> org.apache.flink.table.planner.loader.DelegateExecutorFactory.<init>(DelegateExecutorFactory.java:34)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         at java.lang.Class.newInstance(Class.java:442)
>         at 
> java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
>         ... 14 more
> Caused by: org.apache.flink.table.api.TableException: Could not initialize 
> the table planner components loader.
>         at 
> org.apache.flink.table.planner.loader.PlannerModule.<init>(PlannerModule.java:123)
>         at 
> org.apache.flink.table.planner.loader.PlannerModule.<init>(PlannerModule.java:52)
>         at 
> org.apache.flink.table.planner.loader.PlannerModule$PlannerComponentsHolder.<clinit>(PlannerModule.java:131)
>         ... 22 more
> Caused by: java.nio.file.FileAlreadyExistsException: /tmp
>         at 
> sun.nio.fs.UnixException.translateToIOException(UnixException.java:88)
>         at 
> sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
>         at 
> sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
>         at 
> sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
>         at java.nio.file.Files.createDirectory(Files.java:674)
>         at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
>         at java.nio.file.Files.createDirectories(Files.java:727)
>         at 
> org.apache.flink.table.planner.loader.PlannerModule.<init>(PlannerModule.java:96)
>         ... 24 more



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to