Flink程序员开发利器本地化WebUI生成

前言

在flink程序开发或者调试过程中,每次部署到集群上都需要不断打包部署,其实是比较麻烦的事情,其实flink一直就提供了一种比较好的方式使得开发同学不用部署就可以观察到flink执行情况。

上代码

第一步:开发之前需要引入在本机支持相关的包

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

第二步:
其实只要在生成环境的时候增加webUI部分

  Configuration conf = new Configuration();
        //设置WebUI绑定的本地端口
  conf.setString(RestOptions.BIND_PORT,"8081");
        //使用配置
  StreamExecutionEnvironment env=       StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);

当我们跑起来的时候,我们在浏览器上面输入http://localhost:8081/ 就可以访问:
在这里插入图片描述
下面是我的Idea程序:
在这里插入图片描述
当然:很多小伙伴肯定想速度操作一下,咱讲究一个服务到位,示例代码也给出来:


public class WordCountStreamUnboundedDemo {
    public static void main(String[] args) throws Exception {
        //StreamExecutionEnvironment env=   StreamExecutionEnvironment.getExecutionEnvironment();
        Configuration conf = new Configuration();
        //设置WebUI绑定的本地端口
        conf.setString(RestOptions.BIND_PORT,"8081");
        //使用配置
        StreamExecutionEnvironment env=   StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);

        env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
                3, // 尝试重启的次数
                Time.of(10, TimeUnit.SECONDS) // 间隔
        ));
        DataStreamSource<String> inputDS = env.addSource(new ClickParallelSource());

        inputDS.flatMap((FlatMapFunction<String, Tuple2<String, Integer>>) (text, collector) -> {
            String[] words=text.split("\\s+");
            for ( String word:words){
                collector.collect(Tuple2.of(word,1));
            }
        }).returns(Types.TUPLE(Types.STRING,Types.INT)).keyBy((KeySelector<Tuple2<String,Integer>,String>) entry -> entry.f0)
                .sum(1).print();
        env.execute();
    }

后记

其实做这个事情是因为前文Docker部署Flink的关系,我注意到各个环节上侧重的事情不同,开发环境对我们理解流的一些设计思想很有用,还有各种参数并行的调试都非常有帮助,奈何没有直观可见的东西,有了开发环境的UI界面,丝滑了N个数量级了。

相关推荐

  1. Docker的本地化部署:加速软件开发周期的利器

    2024-03-18 01:28:03       65 阅读
  2. WebGIS开发者入门

    2024-03-18 01:28:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 01:28:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 01:28:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 01:28:03       87 阅读
  4. Python语言-面向对象

    2024-03-18 01:28:03       96 阅读

热门阅读

  1. 【Linux笔记-使用指南-备忘录】

    2024-03-18 01:28:03       41 阅读
  2. excel封装和ddt D17

    2024-03-18 01:28:03       43 阅读
  3. [蓝桥杯 2020 省 AB1] 走方格

    2024-03-18 01:28:03       38 阅读
  4. nuxtjs 如何通过ecosystem.config.js配置pm2?

    2024-03-18 01:28:03       38 阅读
  5. 解释 Git 的基本概念和使用方式。

    2024-03-18 01:28:03       39 阅读
  6. Linux之Shell脚本

    2024-03-18 01:28:03       39 阅读
  7. 2023蓝桥杯省赛真题分糖果 |枚举+DFS

    2024-03-18 01:28:03       54 阅读
  8. HTML与CSS

    2024-03-18 01:28:03       45 阅读
  9. 前端开发者如何开发自己的生态网站

    2024-03-18 01:28:03       34 阅读
  10. Rust 01.变量、类型、函数

    2024-03-18 01:28:03       34 阅读
  11. Redis集群原理解析

    2024-03-18 01:28:03       39 阅读