Flink WebUI在从IDE运行时的问题

20

我想在Web用户界面中查看我的工作。

我使用createLocalEnvironmentWithWebUI,在IDE中代码运行良好,但无法在http://localhost:8081/#/overview中看到我的工作。

      val conf: Configuration = new Configuration()
      import org.apache.flink.configuration.ConfigConstants
      conf.setBoolean(ConfigConstants.LOCAL_START_WEBSERVER, true)
      val env =  StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf)
      env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)


      val rides = env.addSource(
        new TaxiRideSource("nycTaxiRides.gz", 1,100))//60, 600))

      val filteredRides = rides
        .filter(r => GeoUtils.isInNYC(r.startLon, r.startLat) && GeoUtils.isInNYC(r.endLon, r.endLat))
        .map(r => (r.passengerCnt, 1))
        .keyBy(_._1)
        .window(TumblingTimeWindows.of(Time.seconds(5)))
        .sum(1)
        .map(r => (r._1.toString+"test", r._2))

      filteredRides.print()
      env.execute("Taxi Ride Cleansing")

我需要设置其他东西吗?

3个回答

37
我可以通过将 flink-runtime-web 添加到我的项目依赖中,在 IntelliJ 中启动 Flink webui。我通过在 pom.xml 文件中添加以下内容来实现:
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-runtime-web</artifactId>
        <version>${flink.version}</version>
    </dependency>

你还需要创建一个包含WebUI的本地执行环境。
    Configuration conf = new Configuration();
    env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);

1
不,我没有构建一个jar文件。那种方法确实可行,但我认为你的目标是完全在IDE中运行应用程序。你检查过日志了吗?现在它正在工作,我得到了一行文字,上面写着“16:20:25,425 INFO org.apache.flink.runtime.minicluster.FlinkMiniCluster - Starting JobManger web frontend”。在我添加依赖之前,我得到了一个错误信息。 - David Anderson
确实我和你的代码行相同,我不得不从终端停止:'/bin/stop-cluster.sh'。现在它正在工作!谢谢alpinegizmo。 - GermainGum
谢谢大家,这对我有用。但是,当作业完成时,Web UI也会消失。那么,有没有解决方案可以在 IntelliJ 中在作业完成后检查 Web UI 信息? - Chenghao
谢谢@DavidAnderson,它起作用了!这部分真的需要在官方文档中。我无法在任何地方找到它...有没有机会将其添加到以下文档中:https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/local_execution.html? - Rafi Aroch
1
在 Flink 1.15+ 版本中,依赖项现在是 <artifactId>flink-runtime-web</artifactId>(没有 Scala 二进制版本)。 - Nicus
显示剩余3条评论

5
从Flink 1.5.0版本开始,添加上述依赖项并使用以下代码片段启动StreamEnvironment对我很有帮助:
Configuration config = new Configuration();
config.setBoolean(ConfigConstants.LOCAL_START_WEBSERVER, true);
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(config);

在处理过程运行期间,Web用户界面可在http://localhost:8081下访问。


这个配置 ConfigConstants.LOCAL_START_WEBSERVER 看起来已经过时了。 - undefined

0
如果您想使用WebUI仪表板,则需要创建一个可执行jar文件,然后将此jar文件提交到Flink仪表板。 我会逐步为您解释这一点。
第1步:从IDE代码创建jar - 您可能需要将执行环境更改为:
StreamExecutionEnvironment envrionment = StreamExecutionEnvironment.getExecutionEnvironment();
- 如果您有多个jar文件,则在Manifest.mf文件的Main-Class:变量中设置主类。 - 然后使用IDE中的构建工件创建一个jar文件。
第2步:启动flink-local集群,它将向您显示仪表板。
  • 我假设您尚未下载Flink二进制文件,您可以轻松地在此处下载。如果您使用的是Macintosh,我建议您使用brew install apache-flink,它将下载最新的稳定版本,当前为1.3.2

  • 好了,现在您必须进入Flink安装路径并启动本地集群

步骤#3:提交作业

  • 通过“提交新作业”选项提交jar文件,然后运行它

enter image description here


2
谢谢@Amarjit,我想避免创建jar文件。我尝试了这个解决方案,但对我没有用:https://dev59.com/6VsW5IYBdhLWcg3wTlu8 - GermainGum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接