[ 
https://issues.apache.org/jira/browse/FLINK-29146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shuiqiang Chen updated FLINK-29146:
-----------------------------------
    Description: 
Currently, when building an ExecutionGraph, it requires to set the job specific 
information (like job id, job name, job configuration, etc) and most of them 
are from JobGraph.But I find that the configuration in JobGraph is a new 
Configuration instance when the JobGraph is built, and it does not contain any 
user set configuration. As a result, we are not able retrieve the use specified 
job configuration in ExecutionGraph built from JobGraph during execution 
runtime.

BTW, in StreamExecutionEnvironment, it seems that job configurations that not 
contained in built-in options will be ignored when calling 
StreamExecutionEnvironment.configure(ReadableConfig[, ClassLoader]). However, 
it will be included when constructing a StreamExecutionEnvironment, which seems 
a bit inconsistent. Is it by design?

{code:java}
Configuration configuration = new Configuration();
// These configured string will take effect.
configuration.setString("k1", "v1");
configuration.setString("k2", "v2");
configuration.setString("k3", "v3");
configuration.set(HeartbeatManagerOptions.HEARTBEAT_TIMEOUT, 300000L);
final StreamExecutionEnvironment env = 
StreamExecutionEnvironment.getExecutionEnvironment(configuration);

// These configured string will be ignored.
configuration.setString("k4", "v4");
configuration.setString("k5", "v5");
configuration.setString("k6", "v6");
env.configure(configuration);
{code}


  was:
Currently, when building an ExecutionGraph, it requires to set the job specific 
information (like job id, job name, job configuration, etc) and most of them 
are from JobGraph.But I find that the configuraiton in JobGraph is a new 
Configuration instance that does not contain any user set configuration. As a 
result, we are not able retrieve the use specified job configuration in 
ExecutionGraph built from JobGraph during runtime execution.

BTW, in StreamExecutionEnvironment, it seems that job configuraitons that not 
contained in built-in options will be igored when calling 
StreamExecutionEnvironment.configure(ReadableConfig[, ClassLoader]). However, 
it will be included when constructing a StreamExecutionEnvironment, which seems 
a bit inconsistent.

{code:java}
Configuration configuration = new Configuration();
// These configured string will take effect.
configuration.setString("k1", "v1");
configuration.setString("k2", "v2");
configuration.setString("k3", "v3");
configuration.set(HeartbeatManagerOptions.HEARTBEAT_TIMEOUT, 300000L);
final StreamExecutionEnvironment env = 
StreamExecutionEnvironment.getExecutionEnvironment(configuration);

// These configured string will be ignored.
configuration.setString("k4", "v4");
configuration.setString("k5", "v5");
configuration.setString("k6", "v6");
env.configure(configuration);
{code}



> User set job configuration can not be retirieved from JobGraph and 
> ExecutionGraph
> ---------------------------------------------------------------------------------
>
>                 Key: FLINK-29146
>                 URL: https://issues.apache.org/jira/browse/FLINK-29146
>             Project: Flink
>          Issue Type: Bug
>    Affects Versions: 1.16.0
>            Reporter: Shuiqiang Chen
>            Priority: Major
>
> Currently, when building an ExecutionGraph, it requires to set the job 
> specific information (like job id, job name, job configuration, etc) and most 
> of them are from JobGraph.But I find that the configuration in JobGraph is a 
> new Configuration instance when the JobGraph is built, and it does not 
> contain any user set configuration. As a result, we are not able retrieve the 
> use specified job configuration in ExecutionGraph built from JobGraph during 
> execution runtime.
> BTW, in StreamExecutionEnvironment, it seems that job configurations that not 
> contained in built-in options will be ignored when calling 
> StreamExecutionEnvironment.configure(ReadableConfig[, ClassLoader]). However, 
> it will be included when constructing a StreamExecutionEnvironment, which 
> seems a bit inconsistent. Is it by design?
> {code:java}
> Configuration configuration = new Configuration();
> // These configured string will take effect.
> configuration.setString("k1", "v1");
> configuration.setString("k2", "v2");
> configuration.setString("k3", "v3");
> configuration.set(HeartbeatManagerOptions.HEARTBEAT_TIMEOUT, 300000L);
> final StreamExecutionEnvironment env = 
> StreamExecutionEnvironment.getExecutionEnvironment(configuration);
> // These configured string will be ignored.
> configuration.setString("k4", "v4");
> configuration.setString("k5", "v5");
> configuration.setString("k6", "v6");
> env.configure(configuration);
> {code}



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

Reply via email to