1.编写目的
启动Flink任务方法的命令为 bin/flink run examples/myflink.jar
但是有时候我们启动时需要向里面传入一些参数,比如配置文件的路径。
2.详细过程
启动Flink任务时,需要添加参数path,指定配置文件的绝对路径。比如:
bin/flink run examples/myflink.jar -path /usr/local/config/config.properties
ParameterTool parameters = ParameterTool.fromArgs(args);
String path = parameters.get("path",null);
// 默认路径
String configFilePath = "/opt/flink-1.8.1/yan-flink/config.properties";
// 如果参数不为空,使用新路径
if(path != null) {
if(path.startsWith("./")) {
System.out.println("error: Please use absolute path such as '/opt/...'");
return;
}
configFilePath = path;
}
// 读取路径下的文件
ParameterTool configParameterTool = null;
try {
configParameterTool = ParameterTool.fromPropertiesFile(configFilePath);
} catch (IOException e) {
if(e instanceof java.io.FileNotFoundException) {
System.out.println("error: configFilePath:"+configFilePath + " doesn't exist.");
return;
}
}
// 加载配置文件数据, 如果加载出现异常则退出运行
try {
// 该方法是自己写的方法,作用就是初始化与配置相关的类的变量
initProperties(configParameterTool);
} catch (Exception e) {
e.printStackTrace();
return;
}
3.总结
使用这种方式进行配置比较方便,打包后放到服务器上运行可以根据不同的配置文件来适应运行环境等方面的更改,不需要重新打包,如果有需要,打包后运行过程中也可以修改配置文件,然后再重启一下Flink这个任务就可以了。
Smileyan 2019年8月14日 17:23