为每个应用程序使用不同的配置

如果你需要为各种应用程序设置不同的设置,则(从 Flink 1.2 开始)没有简单的方法可以做到这一点。

如果你使用 flink 的 one-yarn-cluster-per-job 模式(即使用:flink run -m yarn-cluster …启动脚本),这是一个解决方法:

  1. 在项目附近的某处创建一个 conf 目录

  2. flink/conf 中的所有文件创建符号链接:

     mkdir conf
     cd conf
     ln -s flink/conf/* .
    
  3. 用你自己的配置替换符号链接 log4j.properties(或你要更改的任何其他文件)

  4. 在启动你的工作之前,运行

     export FLINK_CONF_DIR=/path/to/my/conf
    

根据你的 flink 版本,你可能需要编辑文件 flink/bin/config.sh。如果你在这条线上跑:

FLINK_CONF_DIR=$FLINK_ROOT_DIR_MANGLED/conf

改变它:

if [ -z "$FLINK_CONF_DIR" ]; then 
    FLINK_CONF_DIR=$FLINK_ROOT_DIR_MANGLED/conf; 
fi