[
https://issues.apache.org/jira/browse/FLINK-37337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xuyang Zhong closed FLINK-37337.
--------------------------------
Fix Version/s: 2.0.0
2.0.1
Resolution: Fixed
> Deploy script SQL Client in Embedded Mode to Kubernetes Results in
> FileNotFoundException
> ----------------------------------------------------------------------------------------
>
> Key: FLINK-37337
> URL: https://issues.apache.org/jira/browse/FLINK-37337
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Client
> Reporter: Feng Jin
> Assignee: Shengkai Fang
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.0.0, 2.0.1
>
>
> During testing of Flink in Kubernetes Application mode, an issue was
> encountered when submitting SQL scripts using the {*}SQL Client Embedded
> Mode{*}.
> The SQL Client JAR is included in the {{--jar}} parameter by default. This
> parameter is converted to {{user.artifacts.artifact-list . And we will get
> the following exception. }}{{}}
> {code:java}
> Caused by: java.lang.RuntimeException: java.io.FileNotFoundException:
> /home/feng/flink-cluster/image-build/flink/opt/flink-sql-client-2.0-SNAPSHOT.jar
> (No such file or directory) │
> │ at
> org.apache.flink.util.ExceptionUtils.rethrow(ExceptionUtils.java:321)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.util.function.FunctionUtils.lambda$uncheckedFunction$2(FunctionUtils.java:75)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown
> Source) ~[?:?]
> │
> │ at
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown
> Source) ~[?:?]
> │
> │ at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
> ~[?:?]
> │
> │ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown
> Source) ~[?:?]
> │
> │ at
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown
> Source) ~[?:?]
> │
> │ at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
> ~[?:?]
> │
> │ at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
> ~[?:?]
> │
> │ at
> org.apache.flink.client.program.artifact.ArtifactFetchManager.fetchArtifacts(ArtifactFetchManager.java:126)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.kubernetes.entrypoint.KubernetesApplicationClusterEntrypoint.fetchArtifacts(KubernetesApplicationClusterEntrypoint.java:159)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] │
> │ ... 8 more
>
> │
> │ Caused by: java.io.FileNotFoundException:
> /home/feng/flink-cluster/image-build/flink/opt/flink-sql-client-2.0-SNAPSHOT.jar
> (No such file or directory)
> │
> │ at java.base/java.io.FileInputStream.open0(Native Method) ~[?:?]
>
> │
> │ at java.base/java.io.FileInputStream.open(Unknown Source) ~[?:?]
>
> │
> │ at java.base/java.io.FileInputStream.<init>(Unknown Source) ~[?:?]
>
> │
> │ at
> org.apache.flink.core.fs.local.LocalDataInputStream.<init>(LocalDataInputStream.java:52)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.core.fs.local.LocalFileSystem.open(LocalFileSystem.java:133)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.client.program.artifact.FsArtifactFetcher.fetch(FsArtifactFetcher.java:45)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.client.program.artifact.ArtifactFetchManager.fetchArtifact(ArtifactFetchManager.java:152)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.util.function.FunctionUtils.lambda$uncheckedFunction$2(FunctionUtils.java:73)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown
> Source) ~[?:?]
> │
> │ at
> java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown
> Source) ~[?:?]
> │
> │ at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
> ~[?:?]
> │
> │ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown
> Source) ~[?:?]
> │
> │ at
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown
> Source) ~[?:?]
> │
> │ at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
> ~[?:?]
> │
> │ at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
> ~[?:?]
> │
> │ at
> org.apache.flink.client.program.artifact.ArtifactFetchManager.fetchArtifacts(ArtifactFetchManager.java:126)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT]
> │
> │ at
> org.apache.flink.kubernetes.entrypoint.KubernetesApplicationClusterEntrypoint.fetchArtifacts(KubernetesApplicationClusterEntrypoint.java:159)
> ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] │
> │ ... 8 more{code}
> In sql-client.sh, there is a logic that uses --jar to include the sql-client
> JAR if it is not in the classpath.
> {code:java}
> # check if SQL client is already in classpath and must not be shipped manually
> if [[ "$CC_CLASSPATH" =~ .*flink-sql-client.*.jar ]]; then # start client
> without jar
> exec "$JAVA_RUN" $FLINK_ENV_JAVA_OPTS $JVM_ARGS "${log_setting[@]}"
> -classpath "`manglePathList "$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS"`"
> org.apache.flink.table.client.SqlClient "$@"# check if SQL client jar is in
> /opt
> elif [ -n "$FLINK_SQL_CLIENT_JAR" ]; then # start client with jar
> exec "$JAVA_RUN" $FLINK_ENV_JAVA_OPTS $JVM_ARGS "${log_setting[@]}"
> -classpath "`manglePathList
> "$CC_CLASSPATH:$FLINK_SQL_CLIENT_JAR:$INTERNAL_HADOOP_CLASSPATHS"`"
> org.apache.flink.table.client.SqlClient "$@" --jar "`manglePath
> $FLINK_SQL_CLIENT_JAR`"{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)