一.传递参数
几乎所有的Flink应用程序(批处理和流式处理)都依赖于外部配置参数。它们用于指定输入和输出源(如路径或地址),系统参数(并行度,运行时配置)和特定于应用程序的参数(通常在用户功能内使用)。
Flink提供了一个简单的实用程序,称为ParameterTool提供解决这些问题的一些基本工具。请注意,使用ParameterTool不是必须的。其他框架(例如Commons CLI和 argparse4j)也可以与Flink一起使用。
将配置值放入ParameterTool
所述ParameterTool用于读取所述配置提供一组预定义的静态方法。该工具在内部期望使用Map<String, String>,因此将其与自己的配置样式集成起来非常容易。
从配置文件中加载参数:
//url
String propertiesFilePath = "/home/sam/flink/myjob.properties";
ParameterTool parameter = ParameterTool.fromPropertiesFile(propertiesFilePath);
//file
File propertiesFile = new File(propertiesFilePath);
ParameterTool parameter = ParameterTool.fromPropertiesFile(propertiesFile);
//fileInputStream
InputStream propertiesFileInputStream = new FileInputStream(file);
ParameterTool parameter = ParameterTool.fromPropertiesFile(propertiesFileInputStream);
从命令行加载参数
这样可以–input hdfs:///mydata --elements 42从命令行获取参数。
public static void main(String[] args) {
ParameterTool parameter = Par