How to override flink-conf parameters for SQL Client

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

How to override flink-conf parameters for SQL Client

Gyula Fóra
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Caizhi Weng
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Gyula Fóra
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Jark Wu-3
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Jingsong Li
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Gyula Fóra
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Jeff Zhang
Hi Gyula,

I am doing integration Flink with Zeppelin. One feature in Zeppelin is that user could override any features in flink-conf.yaml. (Actually any features here https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html). Of course you can run flink sql in Zeppelin, and could also leverage other features of Zeppelin, like visualization. 

If you are interested, you could try the master branch of Zeppelin + this improvement PR







Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午6:51写道:
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee


--
Best Regards

Jeff Zhang
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Kurt Young
IIRC the tricky thing here is not all the config options belong to flink-conf.yaml can be adjust dynamically in user's program. 
So it will end up like some of the configurations can be overridden but some are not. The experience is not quite good for users.

Best,
Kurt


On Thu, Mar 5, 2020 at 10:15 PM Jeff Zhang <[hidden email]> wrote:
Hi Gyula,

I am doing integration Flink with Zeppelin. One feature in Zeppelin is that user could override any features in flink-conf.yaml. (Actually any features here https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html). Of course you can run flink sql in Zeppelin, and could also leverage other features of Zeppelin, like visualization. 

If you are interested, you could try the master branch of Zeppelin + this improvement PR







Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午6:51写道:
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee


--
Best Regards

Jeff Zhang
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Gyula Fóra
Kurt can you please explain which conf parameters do you mean?

In regular executions (Yarn for instance) we  have dynamic config parameters overriding any flink-conf argument.
So it is not about setting them in the user code but it should happen before the ClusterDescriptors are created (ie in the together with the CustomCommandLine logic)

Gyula

On Thu, Mar 5, 2020 at 3:49 PM Kurt Young <[hidden email]> wrote:
IIRC the tricky thing here is not all the config options belong to flink-conf.yaml can be adjust dynamically in user's program. 
So it will end up like some of the configurations can be overridden but some are not. The experience is not quite good for users.

Best,
Kurt


On Thu, Mar 5, 2020 at 10:15 PM Jeff Zhang <[hidden email]> wrote:
Hi Gyula,

I am doing integration Flink with Zeppelin. One feature in Zeppelin is that user could override any features in flink-conf.yaml. (Actually any features here https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html). Of course you can run flink sql in Zeppelin, and could also leverage other features of Zeppelin, like visualization. 

If you are interested, you could try the master branch of Zeppelin + this improvement PR







Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午6:51写道:
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee


--
Best Regards

Jeff Zhang
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Kurt Young
If you already have a running flink cluster and you want submit another job to this cluster, then all the configurations
relates to process parameters like TM memory, slot number etc are not be able to modify.

Best,
Kurt


On Thu, Mar 5, 2020 at 11:08 PM Gyula Fóra <[hidden email]> wrote:
Kurt can you please explain which conf parameters do you mean?

In regular executions (Yarn for instance) we  have dynamic config parameters overriding any flink-conf argument.
So it is not about setting them in the user code but it should happen before the ClusterDescriptors are created (ie in the together with the CustomCommandLine logic)

Gyula

On Thu, Mar 5, 2020 at 3:49 PM Kurt Young <[hidden email]> wrote:
IIRC the tricky thing here is not all the config options belong to flink-conf.yaml can be adjust dynamically in user's program. 
So it will end up like some of the configurations can be overridden but some are not. The experience is not quite good for users.

Best,
Kurt


On Thu, Mar 5, 2020 at 10:15 PM Jeff Zhang <[hidden email]> wrote:
Hi Gyula,

I am doing integration Flink with Zeppelin. One feature in Zeppelin is that user could override any features in flink-conf.yaml. (Actually any features here https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html). Of course you can run flink sql in Zeppelin, and could also leverage other features of Zeppelin, like visualization. 

If you are interested, you could try the master branch of Zeppelin + this improvement PR







Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午6:51写道:
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee


--
Best Regards

Jeff Zhang
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Jeff Zhang
There's 2 kinds of configuration: job level & cluster level. I am afraid we don't have document to differentiate that, it depends on how user understand these configuration. We may need to improve document on that. 

Kurt Young <[hidden email]> 于2020年3月6日周五 上午8:34写道:
If you already have a running flink cluster and you want submit another job to this cluster, then all the configurations
relates to process parameters like TM memory, slot number etc are not be able to modify.

Best,
Kurt


On Thu, Mar 5, 2020 at 11:08 PM Gyula Fóra <[hidden email]> wrote:
Kurt can you please explain which conf parameters do you mean?

In regular executions (Yarn for instance) we  have dynamic config parameters overriding any flink-conf argument.
So it is not about setting them in the user code but it should happen before the ClusterDescriptors are created (ie in the together with the CustomCommandLine logic)

Gyula

On Thu, Mar 5, 2020 at 3:49 PM Kurt Young <[hidden email]> wrote:
IIRC the tricky thing here is not all the config options belong to flink-conf.yaml can be adjust dynamically in user's program. 
So it will end up like some of the configurations can be overridden but some are not. The experience is not quite good for users.

Best,
Kurt


On Thu, Mar 5, 2020 at 10:15 PM Jeff Zhang <[hidden email]> wrote:
Hi Gyula,

I am doing integration Flink with Zeppelin. One feature in Zeppelin is that user could override any features in flink-conf.yaml. (Actually any features here https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html). Of course you can run flink sql in Zeppelin, and could also leverage other features of Zeppelin, like visualization. 

If you are interested, you could try the master branch of Zeppelin + this improvement PR







Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午6:51写道:
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee


--
Best Regards

Jeff Zhang


--
Best Regards

Jeff Zhang
Reply | Threaded
Open this post in threaded view
|

Re: How to override flink-conf parameters for SQL Client

Gyula Fóra
I feel that the current configuration section of the environment file assumes too much about what the user wants to configure.
Configuring Table specific options is one thing but there are certainly many many cases where users are deploying jobs in a per-job-cluster mode and
being able to override certain Flink configs is very useful.

With the huge improvements to the StreamExecutionEnv configuration coming in 1.10 this is even more so.

I would propose to introduce a differentiation logic between "hard-coded" configs (the ones we have now) and arbitrary config parameters that should override the Configuration coming from flink-conf.yaml.
it could look something like:

flink-config:
  state.backend : ROCKSDB
  ......
table-config:
  what we have now
  

On Fri, Mar 6, 2020 at 3:22 AM Jeff Zhang <[hidden email]> wrote:
There's 2 kinds of configuration: job level & cluster level. I am afraid we don't have document to differentiate that, it depends on how user understand these configuration. We may need to improve document on that. 

Kurt Young <[hidden email]> 于2020年3月6日周五 上午8:34写道:
If you already have a running flink cluster and you want submit another job to this cluster, then all the configurations
relates to process parameters like TM memory, slot number etc are not be able to modify.

Best,
Kurt


On Thu, Mar 5, 2020 at 11:08 PM Gyula Fóra <[hidden email]> wrote:
Kurt can you please explain which conf parameters do you mean?

In regular executions (Yarn for instance) we  have dynamic config parameters overriding any flink-conf argument.
So it is not about setting them in the user code but it should happen before the ClusterDescriptors are created (ie in the together with the CustomCommandLine logic)

Gyula

On Thu, Mar 5, 2020 at 3:49 PM Kurt Young <[hidden email]> wrote:
IIRC the tricky thing here is not all the config options belong to flink-conf.yaml can be adjust dynamically in user's program. 
So it will end up like some of the configurations can be overridden but some are not. The experience is not quite good for users.

Best,
Kurt


On Thu, Mar 5, 2020 at 10:15 PM Jeff Zhang <[hidden email]> wrote:
Hi Gyula,

I am doing integration Flink with Zeppelin. One feature in Zeppelin is that user could override any features in flink-conf.yaml. (Actually any features here https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html). Of course you can run flink sql in Zeppelin, and could also leverage other features of Zeppelin, like visualization. 

If you are interested, you could try the master branch of Zeppelin + this improvement PR







Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午6:51写道:
I could basically list a few things I want to set (execution.target for example), but it's fair to assume that I would like to be able to set anything :)

Gyula

On Thu, Mar 5, 2020 at 11:35 AM Jingsong Li <[hidden email]> wrote:
Hi Gyula,

Maybe Blink planner has invoked "StreamExecutionEnvironment.configure", which planner do you use?

But "StreamExecutionEnvironment.configure" is only for partial configuration, can not for all configuration in flink-conf.yaml.
So what's the config do you want to set? I know some config like "taskmanager.network.blocking-shuffle.compression.enabled" can not set....

Best,
Jingsong Lee

On Thu, Mar 5, 2020 at 6:17 PM Jark Wu <[hidden email]> wrote:
Hi Gyula,

Flink configurations can be overrided via `TableConfig#getConfiguration()`, however, SQL CLI only allows to set Table specific configs. 
I will think it as a bug/improvement of SQL CLI which should be fixed in 1.10.1. 

Best,
Jark

On Thu, 5 Mar 2020 at 18:12, Gyula Fóra <[hidden email]> wrote:
Thanks Caizhi,

This seems like a pretty big shortcoming for any multi-user/multi-app environment. I will open a jira for this.

Gyula

On Thu, Mar 5, 2020 at 10:58 AM Caizhi Weng <[hidden email]> wrote:
Hi Gyula.

I'm afraid there is no way to override all Flink configurations currently. SQL client yaml file can only override some of the Flink configurations.

Configuration entries indeed can only set Table specific configs, while deployment entires are used to set the result fetching address and port. There is currently no way to change the execution target from the SQL client.

Gyula Fóra <[hidden email]> 于2020年3月5日周四 下午4:31写道:
Hi All!

I am trying to understand if there is any way to override flink configuration parameters when starting the SQL Client.

It seems that the only way to pass any parameters is through the environment yaml.

There I found 2 possible routes:

configuration: this doesn't work as it only sets Table specific configs apparently, but maybe I am wrong.

deployment: I tried using dynamic properties options here but unfortunately we normalize (lowercase) the YAML keys so it is impossible to pass options like -yD or -D.

Does anyone have any suggestions?

Thanks
Gyula


--
Best, Jingsong Lee


--
Best Regards

Jeff Zhang


--
Best Regards

Jeff Zhang