flink如何传递全局变量

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

flink如何传递全局变量

zjfplayer@hotmail.com
hi,
    请问flink如何传递全局变量,静态类好像服务器端运行不行。
    场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置



[hidden email]
Reply | Threaded
Open this post in threaded view
|

回复:flink如何传递全局变量

Yichao Yang
Hi


使用rich function,在open方法中加载,如果配置可能会发生变化,可以使用broadcast。


Best,
Yichao Yang




------------------ 原始邮件 ------------------
发件人:&nbsp;"[hidden email]"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月9日(星期二) 晚上8:14
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;flink如何传递全局变量



hi,
&nbsp;&nbsp;&nbsp; 请问flink如何传递全局变量,静态类好像服务器端运行不行。
&nbsp;&nbsp;&nbsp; 场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置



[hidden email]
Reply | Threaded
Open this post in threaded view
|

回复: 回复:flink如何传递全局变量

zjfplayer@hotmail.com
有相关的代码例子可以参考下吗?



[hidden email]
 
发件人: 1048262223
发送时间: 2020-06-09 20:17
收件人: user-zh
主题: 回复:flink如何传递全局变量
Hi
 
 
使用rich function,在open方法中加载,如果配置可能会发生变化,可以使用broadcast。
 
 
Best,
Yichao Yang
 
 
 
 
------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"[hidden email]"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月9日(星期二) 晚上8:14
收件人:&nbsp;"user-zh"<[hidden email]&gt;;
 
主题:&nbsp;flink如何传递全局变量
 
 
 
hi,
&nbsp;&nbsp;&nbsp; 请问flink如何传递全局变量,静态类好像服务器端运行不行。
&nbsp;&nbsp;&nbsp; 场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置
 
 
 
[hidden email]
Reply | Threaded
Open this post in threaded view
|

回复: 回复:flink如何传递全局变量

Yichao Yang
Hi


Broadcast可以参考这个[1],open其实就是直接在open时加载




[1]https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/broadcast_state.html


Best,
Yichao Yang


------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"[hidden email]"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月10日(星期三) 上午9:16
收件人:&nbsp;"1048262223"<[hidden email]&gt;;
抄送:&nbsp;"user-zh"<[hidden email]&gt;;
主题:&nbsp;回复: 回复:flink如何传递全局变量



有相关的代码例子可以参考下吗?



[hidden email]
&nbsp;
发件人: 1048262223
发送时间: 2020-06-09 20:17
收件人: user-zh
主题: 回复:flink如何传递全局变量
Hi
&nbsp;
&nbsp;
使用rich function,在open方法中加载,如果配置可能会发生变化,可以使用broadcast。
&nbsp;
&nbsp;
Best,
Yichao Yang
&nbsp;
&nbsp;
&nbsp;
&nbsp;
------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"[hidden email]"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年6月9日(星期二) 晚上8:14
收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;
&nbsp;
主题:&amp;nbsp;flink如何传递全局变量
&nbsp;
&nbsp;
&nbsp;
hi,
&amp;nbsp;&amp;nbsp;&amp;nbsp; 请问flink如何传递全局变量,静态类好像服务器端运行不行。
&amp;nbsp;&amp;nbsp;&amp;nbsp; 场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置
&nbsp;
&nbsp;
&nbsp;
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: flink如何传递全局变量

Px New
In reply to this post by zjfplayer@hotmail.com

正如 -> 1048262223  所说的一样 , 目前我就是通过BroadCast 动态更细一些规则带到下游并在Process method 中
进行操作 | 😄

[hidden email] <[hidden email]> 于2020年6月9日周二 下午8:14写道:

> hi,
>     请问flink如何传递全局变量,静态类好像服务器端运行不行。
>     场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置
>
>
>
> [hidden email]
>
Reply | Threaded
Open this post in threaded view
|

Re: flink如何传递全局变量

李杰
还有一个简单的方法,可以尝试parameterTool,当然类型偏简单。
final ParameterTool parameterTool = ParameterTool.fromArgs(args);
parameterTool.get("paramete-key","paramete-value");
...
env.getConfig().setGlobalJobParameters(parameterTool);
...
source
    .map(new RichMapFunction<String, Tuple2<String, Integer>>() {
        private ParameterTool parameterTool = null;
        private String paramete = "";

        @Override
        public void open(Configuration parameters) throws Exception {
            parameterTool = (ParameterTool)
getRuntimeContext().getExecutionConfig().getGlobalJobParameters();
            paramete = parameterTool.get("paramete-key");
            System.out.println("paramete = " + paramete);
        }

        @Override
        public Tuple2<String, Integer> map(String value) throws Exception {
            return new Tuple2<>(paramete, 1);
        }
    });
 ...

Px New <[hidden email]> 于2020年6月10日周三 上午9:53写道:

> 对
> 正如 -> 1048262223  所说的一样 , 目前我就是通过BroadCast 动态更细一些规则带到下游并在Process method 中
> 进行操作 | 😄
>
> [hidden email] <[hidden email]> 于2020年6月9日周二 下午8:14写道:
>
> > hi,
> >     请问flink如何传递全局变量,静态类好像服务器端运行不行。
> >
>  场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置
> >
> >
> >
> > [hidden email]
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Re: flink如何传递全局变量

zjfplayer@hotmail.com
In reply to this post by Px New
我看到这篇文章介绍的比较详细:https://www.cnblogs.com/029zz010buct/p/10362451.html


[hidden email]
 
发件人: Px New
发送时间: 2020-06-10 09:54
收件人: user-zh
主题: Re: flink如何传递全局变量

正如 -> 1048262223  所说的一样 , 目前我就是通过BroadCast 动态更细一些规则带到下游并在Process method 中
进行操作 | 
 
[hidden email] <[hidden email]> 于2020年6月9日周二 下午8:14写道:
 
> hi,
>     请问flink如何传递全局变量,静态类好像服务器端运行不行。
>     场景是:一开始flink程序起来时,读取配置文件中的配置项,此类配置项可能会在sink,source等等其他地方用到,算是整个程序的全局配置
>
>
>
> [hidden email]
>