Flink从入门到放弃

  • Post author:
  • Post category:其他





前言


Flink是一个流批一体处理框架


官网链接:

Flink官网



一、Flink初体验?


在IDEA上创建一个自己的flink程序



1.1 引入依赖库


代码如下(示例):

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-streaming-java_2.12</artifactId>
    <version>1.12.7</version>
    <!--            <scope>provided</scope>-->
</dependency>
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-clients_2.12</artifactId>
    <version>1.12.7</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-core -->
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-core</artifactId>
    <version>1.12.7</version>
    <!--            <scope>provided</scope>-->
</dependency>



1.2 读入数据


代码如下(示例):本demo演示数据源为nc数据源

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

DataStreamSource<String> source = env.socketTextStream("your IP", 10086);

System.out.println("********************************************程序开始执行********************************************");

source.print();

env.execute("FirstFlinkApp");


该处使用的url网络请求的数据。


1.3 结果展示

数据输入:

处理结果:



1.4 总结


本篇文章主要是flink初次体验,成功接收数据以及将数据打印在控制台


不知道大家发现没有,打印的数据前面有数字信息,这个信息是跟并行度有关,后面深度探究

二 flink显示详细日志以及web UI页面展示

2.1 WEB UI地址


官网默认网址是: http://localhost:8081


但是我们通过第一节的方法创建的flink程序在运行时是无法打开这个连接的


导致这个情况的有两种可能:


  1. 我们未导入相关的日志依赖

  2. 我们创建的flink的程序入口不支持web页面

解决办法:

导入相关依赖:

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-runtime-web_2.12</artifactId>
            <version>1.12.7</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
            <!--        <scope>test</scope>-->
        </dependency>

创建支持webui的程序入口:

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

DataStreamSource<String> source = env.socketTextStream("your IP", 10086);

System.out.println("********************************************程序开始执行********************************************");

source.print();

env.execute("FirstFlinkApp");

查看日志:

同时我们也可以发现日志中提示我们可以通过 rest.port参数来指定页面的端口

        Configuration conf = new Configuration();
        conf.setLong("rest.port",10086);

我们访问webUI页面:

包含了一下信息:

  • 当前的flink版本
  • 运行的任务数
  • 任务运行状态
  • 任务管理界面
  • flink的资源槽

当然不限于上述信息,待我们后续继续探究

2.2 总结

本章主要说明了flink任务的webui地址 以及如何在日志中查看地址等基础操作



版权声明:本文为a18033860865原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。