• 52、Flink 使用 Parametertool 获取应用参数代码示例


    1、获取配置参数-1

    import org.apache.flink.api.java.utils.ParameterTool;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    
    import java.io.IOException;
    import java.util.Map;
    
    public class _01_ParameterToolReadArgs {
        public static void main(String[] args) throws IOException {
            StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    
            // 配置值来自 .properties 文件
    //        String propertiesFilePath = "*";
    //        ParameterTool parameterTool = ParameterTool.fromPropertiesFile(propertiesFilePath);
    
    //        File file = new File("*");
    //        ParameterTool parameterTool = ParameterTool.fromPropertiesFile(file);
    
    //        FileInputStream fileInputStream = new FileInputStream(new File("*"));
    //        ParameterTool parameterTool = ParameterTool.fromPropertiesFile(fileInputStream);
    
            // 配置值来自命令行
            // 输入
            // --input hdfs:///mydata
            // --elements 42
            // 输出
            // input=hdfs:///mydata
            // elements=42
    //        ParameterTool parameterTool = ParameterTool.fromArgs(args);
    
            // 配置值来自系统属性,VmOptions
            // 输入
            // -Dinput=hdfs:///mydata
            // 输出
            // input=hdfs:///mydata
            ParameterTool parameterTool = ParameterTool.fromSystemProperties();
    
            for (Map.Entry<String, String> entry : parameterTool.toMap().entrySet()) {
                if ("input".equals(entry.getKey())) {
                    System.out.println(entry.getKey() + "=" + entry.getValue());
                }
            }
        }
    }
    
    

    2、获取配置参数-2

    import org.apache.flink.api.common.functions.RichMapFunction;
    import org.apache.flink.api.java.utils.ParameterTool;
    import org.apache.flink.streaming.api.datastream.DataStreamSource;
    import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
    
    import java.util.Map;
    
    /**
     * 输入 --input myGlobalParamsInput
     * 输出 myGlobalParamsInput
     */
    public class _02_ParameterToolGlobalParams {
        public static void main(String[] args) throws Exception {
            StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    
            ParameterTool parameters = ParameterTool.fromArgs(args);
            env.getConfig().setGlobalJobParameters(parameters);
    
            DataStreamSource<Integer> source = env.fromData(1, 2, 3);
            source.map(new MyRichMapFunc()).print();
    
            env.execute();
        }
    }
    
    class MyRichMapFunc extends RichMapFunction<Integer, String> {
    
        @Override
        public String map(Integer value) throws Exception {
            Map<String, String> globalJobParameters = getRuntimeContext().getGlobalJobParameters();
            return globalJobParameters.get("input");
        }
    }
    
  • 相关阅读:
    Java项目硅谷课堂学习笔记-P10-后台系统公众号部分
    富格林:总结阻挠欺诈解决措施
    2022-08-20-网易笔试题
    Windows7 - 永恒之蓝 - 测试
    Spring AOP
    安泰电压放大器在水下主动电场中的应用
    SpringBoot3项目框架搭建
    保姆级qt开发环境配置
    NC49 最长的括号子串
    基于Java的厨艺交流平台设计与实现(源码+lw+部署文档+讲解等)
  • 原文地址:https://blog.csdn.net/m0_50186249/article/details/140058323