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

时间:2016-06-10 08:12:20

标签: apache-flink

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

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

您可以使用StreamExecutionEnvironment.getExecutionEnvironment() - 它将找出当前设置,如果在IDE中执行将返回“LocalEnvironemnt”。

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

答案 3 :(得分:0)

将以下依赖项添加到您的 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 仪表板。

在此 blog post 中,您可以找到一个演示,包括源代码和屏幕截图。