自定义配置文件flink-conf.yaml
Custom configuration file flink-conf.yaml
我需要为不同的应用程序指定不同的 Flink 设置。换句话说,每个应用程序应该 运行 及其自定义文件 flink-conf.yaml
。正确的做法是什么?
我发现一些旧的建议声明 FLINK_CONF_DIR
指向带有 Flink 配置文件的自定义目录(例如:)。但是,官方 Flink 文档根本没有提到 FLINK_CONF_DIR
变量(从 Flink 1.13 开始)。所以我怀疑,这种方式是Flink开发者官方推荐和支持的。
更新 1:申请详情 运行ning
我在 Application mode 中 运行ning Flink on YARN。以下是我启动应用程序的方式:
"$flink_home/bin/flink" \
run-application \
--target yarn-application \
--class com.example.App1
开箱即用的 Flink 配置位于 $flink_home/conf
目录中。由于我有几个应用程序 App1、App2、...,我希望它们使用各自的 Flink 配置而不是开箱即用的配置。
TL;DR:当为 Flink 1.12 版本重写 Flink on YARN 文档时,关于 FLINK_CONF_DIR
的段落被意外删除。它仍然是在 YARN 集群中建立每个应用程序设置的预期和受支持的方式。
其他覆盖配置的方式:
您可以使用您在命令行中指定的设置覆盖集群的 flink-conf.yaml
文件中指定的设置,如 .
中所述
您还可以在代码中覆盖全局配置中的特定设置,例如:
Configuration conf = new Configuration();
conf.setString("state.backend", "filesystem");
env = StreamExecutionEnvironment.getExecutionEnvironment(conf);
您还可以通过
从您的应用程序代码加载 flink-conf.yaml
文件中的所有设置
FileSystem.initialize(GlobalConfiguration.loadConfiguration("/path/to/conf/directory"));
使用 Kubernetes,您可以为不同的应用安装不同的 ConfigMap。
我需要为不同的应用程序指定不同的 Flink 设置。换句话说,每个应用程序应该 运行 及其自定义文件 flink-conf.yaml
。正确的做法是什么?
我发现一些旧的建议声明 FLINK_CONF_DIR
指向带有 Flink 配置文件的自定义目录(例如:FLINK_CONF_DIR
变量(从 Flink 1.13 开始)。所以我怀疑,这种方式是Flink开发者官方推荐和支持的。
更新 1:申请详情 运行ning
我在 Application mode 中 运行ning Flink on YARN。以下是我启动应用程序的方式:
"$flink_home/bin/flink" \
run-application \
--target yarn-application \
--class com.example.App1
开箱即用的 Flink 配置位于 $flink_home/conf
目录中。由于我有几个应用程序 App1、App2、...,我希望它们使用各自的 Flink 配置而不是开箱即用的配置。
TL;DR:当为 Flink 1.12 版本重写 Flink on YARN 文档时,关于 FLINK_CONF_DIR
的段落被意外删除。它仍然是在 YARN 集群中建立每个应用程序设置的预期和受支持的方式。
其他覆盖配置的方式:
您可以使用您在命令行中指定的设置覆盖集群的 flink-conf.yaml
文件中指定的设置,如
您还可以在代码中覆盖全局配置中的特定设置,例如:
Configuration conf = new Configuration();
conf.setString("state.backend", "filesystem");
env = StreamExecutionEnvironment.getExecutionEnvironment(conf);
您还可以通过
从您的应用程序代码加载flink-conf.yaml
文件中的所有设置
FileSystem.initialize(GlobalConfiguration.loadConfiguration("/path/to/conf/directory"));
使用 Kubernetes,您可以为不同的应用安装不同的 ConfigMap。