【问题标题】:Flink webui when running from IDE从 IDE 运行时的 Flink webui
【发布时间】:2018-04-09 20:29:13
【问题描述】:

我正在尝试在 web ui 中查看我的工作。

我使用 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")

我需要设置其他东西吗?

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    是的,如果你想使用 WebUI Dashboard,那么你需要创建一个可执行的 jar,然后将这个 jar 提交到 Flink Dashboard。我会一步一步的解释给你

    第 1 步:从 IDE 代码创建 jar

    • 您可能需要将执行环境更改为

    StreamExecutionEnvironment 环境 = StreamExecutionEnvironment.getExecutionEnvironment();

    • 如果您有多个 jar,则将主类设置为 Main-Class: Manifest.mf 文件的变量

    • 然后使用 IDE 中的构建工件创建一个 jar

    第 2 步: 启动 flink-local 集群,它会显示仪表板。

    • 我假设你还没有下载 Flink 二进制文件,你可以 轻松下载here,如果你有Macintosh,我会建议你 使用 brew install apache-flink 下载最新的稳定版 当前版本为 1.3.2

    • 好的,现在你必须去安装flink的路径和start local cluster

    第 3 步:提交作业

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

    【讨论】:

    【解决方案2】:

    通过将 flink-runtime-web 添加到我的项目的依赖项中,我能够从 IntelliJ 启动 Flink webui。我通过将其添加到我的 pom.xml 文件中来做到这一点:

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

    您还需要创建一个包含 WebUI 的本地执行环境:

        Configuration conf = new Configuration();
        env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);
    

    【讨论】:

    • 谢谢@alpinegizmo。我将此依赖项添加到我的 pom.xml 中。它没有用。您是否需要按照@Amarjit 的建议构建一个 jar 才能使其正常工作?
    • 不,我没有建立一个罐子。这种方法确实有效,但我认为您的目标是完全在 IDE 中运行应用程序。你检查过日志吗?现在它开始工作了,我得到一条线,上面写着“16:20:25,425 INFO org.apache.flink.runtime.minicluster.FlinkMiniCluster - 启动 JobManger Web 前端”。在我添加依赖项之前,我得到了一个错误。
    • 可能你的 pom 没有定义 flink.version,在这种情况下用版本号代替(例如,1.3.2)。
    • 确实我和你有同样的线路,我不得不从终端停下来:'/bin/stop-cluster.sh'。现在它正在工作!谢谢 alpinegizmo。
    【解决方案3】:

    从 Flink 版本 1.5.0 开始,添加前面提到的依赖项并使用以下代码启动 StreamEnvironment 对我有用:

    Configuration config = new Configuration();
    config.setBoolean(ConfigConstants.LOCAL_START_WEBSERVER, true);
    StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(config);
    

    处理运行时,Web UI 在 http://localhost:8081 下可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      相关资源
      最近更新 更多