You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Zhanghao Chen (Jira)" <ji...@apache.org> on 2023/08/28 11:18:00 UTC
[jira] [Updated] (FLINK-32980) Support env.java.opts.all & env.java.opts.cli config for starting Session clusters
[ https://issues.apache.org/jira/browse/FLINK-32980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zhanghao Chen updated FLINK-32980:
----------------------------------
Description:
*Problem*
The following configs are supposed to be supported:
|h5. env.java.opts.all|(none)|String|Java options to start the JVM of all Flink processes with.|
|h5. env.java.opts.client|(none)|String|Java options to start the JVM of the Flink Client with.|
However, the two configs do not take effect for starting Flink session clusters using kubernetes-session.sh and yarn-session.sh. This can lead to problems in complex production envs. For example, in my company, some nodes are IPv6-only, and the connection between Flink client and K8s/YARN control plane is via a domain name whose backend is on IPv4/v6 dual stack, and the JVM arg -Djava.net.preferIPv6Addresses=true needs to be set to make Java connect to IPv6 addresses in favor of IPv4 ones otherwise the K8s/YARN control plane is inaccessible.
*Proposal*
The fix is straight-forward, simply apply the following changes to the session scripts:
`
FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_CLI}"
exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS xxx
`
was:
*Problem*
The following configs are supposed to be supported:
|h5. env.java.opts.all|(none)|String|Java options to start the JVM of all Flink processes with.|
|h5. env.java.opts.client|(none)|String|Java options to start the JVM of the Flink Client with.|
However, the two configs do not take effect for starting Flink session clusters using kubernetes-session.sh and yarn-session.sh. This can lead to problems in complex production envs. For example, in my company, some nodes are IPv6-only, and the connection between Flink client and K8s/YARN control plane is via a domain name whose backend is on IPv4/v6 dual stack, and the JVM arg -Djava.net.preferIPv6Addresses=true needs to be set to make Java connect to IPv6 addresses in favor of IPv4 ones otherwise the K8s/YARN control plane is inaccessible.
*Proposal*
The fix is straight-forward, simply apply the following changes to the session scripts:
`
# Add Client-specific JVM options
FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_CLI}"
exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS xxx
`
> Support env.java.opts.all & env.java.opts.cli config for starting Session clusters
> ----------------------------------------------------------------------------------
>
> Key: FLINK-32980
> URL: https://issues.apache.org/jira/browse/FLINK-32980
> Project: Flink
> Issue Type: Improvement
> Components: Command Line Client, Deployment / Scripts
> Affects Versions: 1.18.0
> Reporter: Zhanghao Chen
> Priority: Minor
> Fix For: 1.19.0
>
>
> *Problem*
> The following configs are supposed to be supported:
> |h5. env.java.opts.all|(none)|String|Java options to start the JVM of all Flink processes with.|
> |h5. env.java.opts.client|(none)|String|Java options to start the JVM of the Flink Client with.|
> However, the two configs do not take effect for starting Flink session clusters using kubernetes-session.sh and yarn-session.sh. This can lead to problems in complex production envs. For example, in my company, some nodes are IPv6-only, and the connection between Flink client and K8s/YARN control plane is via a domain name whose backend is on IPv4/v6 dual stack, and the JVM arg -Djava.net.preferIPv6Addresses=true needs to be set to make Java connect to IPv6 addresses in favor of IPv4 ones otherwise the K8s/YARN control plane is inaccessible.
>
> *Proposal*
> The fix is straight-forward, simply apply the following changes to the session scripts:
> `
> FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_CLI}"
> exec $JAVA_RUN $JVM_ARGS $FLINK_ENV_JAVA_OPTS xxx
> `
--
This message was sent by Atlassian Jira
(v8.20.10#820010)