Flink传入自定义的参数或配置文件

一、Flink 动态参数传入方式简介

Flink提供ParameterTool类,从不同的来源读取参数

1.fromArgs方法
2.fromPropertiesFile方法
3.fromSystemProperties方法

二、Flink 动态参数实操

1.fromArgs方法

读取在命令行中传递的参数,注意传参 格式为 key value ,key必须以 - 或者 – 开头,如 --key1 value1 --key2 value2 -key3 value3

eg: 传参格式为 --type:“stock” --markType:“101” 空格间隔

在这里插入图片描述

  • 动态收参代码
		StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        // 获取传入的参数
        ParameterTool parameterTool = ParameterTool.fromArgs(args);
        // 注册给环境变量
        env.getConfig().setGlobalJobParameters(parameterTool);
        // 获取注册的配置
        ExecutionConfig.GlobalJobParameters parameters = env.getConfig().getGlobalJobParameters();
        Map<String, String> map = parameters.toMap();
        String markType = map.get("markType");

        // 设置任务失败重启 允许任务失败最大次数 3次
        env.setRestartStrategy(RestartStrategies.failureRateRestart(3,
                // 任务失败的时间启动的间隔
                Time.of(2, TimeUnit.SECONDS),
                // 允许任务延迟时间 3s
                Time.of(3, TimeUnit.SECONDS))
        );

2.fromPropertiesFile方法

  • 配置文件Flink-conf.yarml编写方式
#hbase连接地址
hbase_zookeeper_quorum: localhost
hbase_zookeeper_client_port: 2181

#kafka连接地址
kafka_source_quorum: 
kafka_source_topic: 
kafka_source_group: 

记得yml文件 冒号":" 和地址 中间加空格哦!

  • 动态收参代码
		StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
		ParameterTool parameterTool = ParameterTool.fromPropertiesFile("配置文件目录");
        // 注册给环境变量
        env.getConfig().setGlobalJobParameters(parameterTool);
        // 获取注册的配置
        ExecutionConfig.GlobalJobParameters parameters = env.getConfig().getGlobalJobParameters();
		//设置静态类调用
        new FlinkConf(parameters);
public class FlinkConf {
	//静态类
	public static String HBASE_SERVER ;
    public static String KAFKA_SERVER ;
	public FlinkConf(ExecutionConfig.GlobalJobParameters parameters){
        Map<String, String> map = parameters.toMap();
        HBASE_SERVER = map.get("hbase_zookeeper_quorum");
        KAFKA_SERVER = map.get("kafka_quorum");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值