Flink快速开始

前言

Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
原文链接

Flink-logo


快速开始

环境准备

本文章主要在CentOS 7环境下安装,Flink唯一的要求是需要安装有效的Java 8.x.的用户,可以通过下面的命令查看当前JDK版本

1
java -version

如果是JDK8,则显示如下:

1
2
3
4
[root@zyj ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

下载解压

Flink下载地址

1
tar -xvf flink-*.tgz

更换端口并启动

1
[root@zyj flink-1.12.0]# vim conf/flink-conf.yaml

rest.port指定你想要设置的端口,这边设置为53742

1
rest.port: 53742

启动并指定刚配置好的配置文件

1
2
[root@zyj flink-1.12.0]# cd bin/
[root@zyj bin]# ./start-cluster.sh ../conf/flink-conf.yaml

查看Flink是否运行

1
[root@zyj conf]# ps -ef | grep flink

通过isof命令查看flink是否监听在53742端口上,其中6034为flink进程的PID,如下所示发现已在53742端口上监听

1
2
3
4
5
6
[root@zyj conf]# lsof -p 6034 -nP | grep TCP
java 6034 root 54u IPv4 386596639 0t0 TCP *:6123 (LISTEN)
java 6034 root 56u IPv4 386596692 0t0 TCP *:45288 (LISTEN)
java 6034 root 69u IPv4 386596736 0t0 TCP *:43116 (LISTEN)
java 6034 root 79u IPv4 386596746 0t0 TCP *:53742 (LISTEN)
java 6034 root 80u IPv4 386596785 0t0 TCP 127.0.0.1:6123->127.0.0.1:52816 (ESTABLISHED)

访问http://localhost:53742出现如下页面表示安装成功

flink-page

运行例子

现在,我们将运行此Flink应用程序。它将从套接字读取文本,并且每5秒打印一次前5秒内每个不同单词的出现次数,即处理时间的翻滚窗口,只要文字漂浮在其中。

我们使用netcat来充当本地服务器,netcat可以通过yum install -y netcat来进行安装

1
[root@zyj ~]# nc -l 9000

提交Flink任务

1
[root@zyj bin]# ./flink run ../examples/streaming/SocketWindowWordCount.jar --port 9000

检查作业是否按预期运行
Flink-job1

在我们刚netcat启动的服务器上输入想要的字符

1
2
3
4
[root@zyj ~]# nc -l 9000
root
zyj zyj zyj
root zyj
1
2
3
[root@zyj flink-1.12.0]# tail -f log/flink-*-taskexecutor-*.out
zyj : 4
root : 2

停止Flink

1
./bin/stop-cluster.sh

常用链接

Flink官方中文文档


如果有小伙伴,想要一起交流学习的,欢迎添加博主微信。

weChat