从 IDE 独立运行的本地 Flink 配置



如果我想直接从 Intellij 中在本地运行 Flink 应用程序,但我需要指定配置参数(如 fs.hdfs.hdfssite 来设置 S3 访问),除了 ExecutionEnvironment.createLocalEnvironment(conf) 之外,还有其他方法可以提供这些配置参数吗?如果我想使用StreamExecutionEnvironment.getExecutionEnvironment怎么办?我可以在我的项目中有一个 Flink 配置并将本地应用程序指向它吗?

这是正确的方法吗?或者你会设置 IDE 以将应用程序提交到真正的本地 Flink 实例吗?

要使用配置选项创建StreamExecutionEnvironment,请使用此调用StreamExecutionEnvironment.createLocalEnvironment(int parallelism, Configuration configuration)

我可以通过在 IntelliJ 运行配置中提供ENV_VAR FLINK_CONF_DIR来加载 flink-conf.yaml 文件

您可以使用

StreamExecutionEnvironment.getExecutionEnvironment() - 它将找出当前设置,如果在IDE中执行,将返回"LocalEnvironemnt"。

因此,应该能够使用conf/flink-conf.yaml来设置您的配置值。

将以下依赖项添加到您的 pom.xml:

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-metrics-jmx_2.11</artifactId>
    <version>${flink.version}</version>
</dependency>

然后将作业更改为使用以下 StreamExecutionEnvironment:

Properties props = new Properties();
props.put("metrics.reporter.jmx.factory.class", "org.apache.flink.metrics.jmx.JMXReporterFactory");
Configuration conf = ConfigurationUtils.createConfiguration(props);
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);

如果你更喜欢使用 createLocalEnvironment ,它的工作方式相同,但没有 Flink 仪表板。

在这篇博文中,您可以找到一个演示,包括源代码和屏幕截图。

相关内容

  • 没有找到相关文章

最新更新