You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Shengkai Fang (Jira)" <ji...@apache.org> on 2025/02/27 01:32:00 UTC
[jira] [Commented] (FLINK-37337) Deploy script SQL Client in Embedded Mode to Kubernetes Results in FileNotFoundException
[ https://issues.apache.org/jira/browse/FLINK-37337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17930901#comment-17930901 ]
Shengkai Fang commented on FLINK-37337:
---------------------------------------
Merged into master: 8dadb73cc45d63d3a8ccfc043158efb71f0916d1
> 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
> Priority: Major
> Labels: pull-request-available
>
> 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)