flink 启动参数传递解析及单元测试

flink 启动参数传递解析及单元测试

启动 flink run -d -c class.main -p 3 xxx.jar xxx.properties

  • 方式1
public static void main(String[] args) throws Exception {
        // 解析参数
        org.apache.commons.configuration2.Configuration conf = ConfigInitialization.initConfig(args);
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(conf.getInt(MsmqConfigurationConsts.FLINK_PARALLELISM));
        // 设置全局参数
        env.getConfig().setGlobalJobParameters(StaticFunctionCreator.clickhouseCommonConfig(conf));
        env.execute("flink test");
      }
import java.util.Map;

import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.ConfigurationMap;
import org.apache.commons.configuration2.FileBasedConfiguration;
import org.apache.commons.configuration2.PropertiesConfiguration;
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration2.builder.fluent.Parameters;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ConfigInitialization {
	private static final Logger logger = LoggerFactory.getLogger(ConfigInitialization.class);
	
	private ConfigInitialization() {}
	
	public static Configuration initConfig(String[] args) {
		String filePath = "develop_config.properties";
		if(args.length>0) {
			logger.info("The specified input parameter is {}" ,args[0]);
			filePath = args[0];
		}
		FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>(
				PropertiesConfiguration.class).configure(new Parameters().properties().setFileName(filePath));
		Configuration config = null;
		try {
			config = builder.getConfiguration();
		} catch (ConfigurationException e) {
			logger.error("Could not load configuration file|path:{}",filePath,e);
			System.exit(-1);
		}
		return config;
	}
}
  • 方式2
import org.apache.flink.api.java.utils.ParameterTool;
import org.apache.flink.configuration.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ConfigInitialization {
    private static final Logger logger = LoggerFactory.getLogger(ConfigInitialization.class);
    private static ConfigInitialization ProjectConfig;

    private ConfigInitialization() {}

    public static Configuration initConfig(String[] args) throws Exception {
        String filePath = "/xxx/src/main/resources/test.properties";
        return ParameterTool.fromPropertiesFile(filePath).getConfiguration();
    }
}

单元测试参考链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值