还有一个简单的方法,可以尝试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 <15701181132mr....@gmail.com> 于2020年6月10日周三 上午9:53写道:

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

回复