在DataStream作业中,您可以根据实际需求从Main函数中获取自定义参数。

自定义参数的配置和获取方法

在DataStream作业中定义paramName=paramValue,即可Main函数中获取自定义参数。
  • paramName:自定义参数名。
  • paramValue:自定义参数值。
说明 一个DataStream作业中可定义多个自定义参数。

自定义参数的配置和获取示例

说明 在开发界面配置blink.job.name=jobnametest后,可以通过如下代码将字符串jobnametest赋值于jobName变量。
import org.apache.flink.api.java.utils.ParameterTool;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Properties;

public class getParameterExample {
    public static void main(String[] args)throws Exception {
        final String jobName;
        final ParameterTool params = ParameterTool.fromArgs(args);

        /*此处必须写configFile,读取configFile中的参数。*/
        String configFilePath = params.get("configFile");

        /*创建一个Properties对象,用于保存在平台中设置的相关参数值。*/
        Properties properties = new Properties();

        /*将平台页面中设置的参数值加载到Properties对象中。*/
        properties.load(new StringReader(new String(Files.readAllBytes(Paths.get(configFilePath)), StandardCharsets.UTF_8)));

        /*获取参数。*/
        jobName = (String) properties.get("blink.job.name");
    }
}
说明 该示例仅适用于在Main函数中获取并使用自定义参数。如果您需要在Flink算子中使用自定义参数,则需要在上述代码的基础上增加如下代码,将自定义参数转化为全局作业参数(GlobalJobParameters)后,在Flink算子中通过Configuration类的getproperty方法获取对应的参数。
env.getConfig().setGlobalJobParameters(ParameterTool.fromPropertiesFile(configFilePath));