1. 部署模式
Flink 支持使用多种部署模式来满足不同规模应用的需求,常见的有单机模式,Standalone Cluster 模式,同时 Flink 也支持部署在其他第三方平台上,如 YARN,Mesos,Docker,Kubernetes 等。
2. 单机模式
单机模式是一种开箱即用的模式,可以在单台服务器上运行,适用于日常的开发和调试。
2.1 安装部署
(1) 前置条件
Flink 的运行依赖 JAVA 环境,需要预先安装好 JDK,具体步骤可以参考:Linux 环境下 JDK 安装。
(2) 下载&解压&运行
Flink 所有版本的安装包可以直接从其官网进行下载,这里下载的 Flink 的版本为 1.9.1 ,要求的 JDK 版本为 1.8.x +。 下载后解压到指定目录:
tar -zxvf flink-1.9.1-bin-scala_2.12.tgz -C /usr/app
不需要进行任何配置,直接使用以下命令就可以启动单机版本的 Flink
bin/start-cluster.sh
(3) WEB UI 界面
Flink提供了 WEB 界面用于直观的管理 Flink 集群,访问端口为 8081:
Flink 的 WEB UI 界面支持大多数常用功能,如提交作业,取消作业,查看各个节点运行情况,查看作业执行情况等,大家可以在部署完成后,进入该页面进行详细的浏览。
2.2 作业提交
启动后可以运行安装包中自带的词频统计案例,具体步骤如下:
(1) 开启端口
nc -lk 9999
(2) 提交作业
bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9999
该 JAR 包的源码可以在 Flink 官方的 GitHub 仓库中找到,地址为 :SocketWindowWordCount ,可选传参有 hostname, port,对应的词频数据需要使用空格进行分割。
(3) 输入测试数据
a a b b c c c a e
(4) 查看控制台输出
可以通过 WEB UI 的控制台查看作业统运行情况:
(5)查看控制台输出
可以通过 WEB UI 的控制台查看作业统运行情况:
也可以通过 WEB 控制台查看到统计结果
2.3 停止作业
可以直接在 WEB 界面上点击对应作业的 Cancel Job 按钮进行取消,也可以使用命令行进行取消。
使用命令行进行取消时,需要先获取到作业的 JobId,可以使用 flink list 命令查看,输出如下
[root@hadoop001 flink-1.9.1]# ./bin/flink list
Waiting for response...
------------------ Running/Restarting Jobs -------------------
05.11.2019 08:19:53 : ba2b1cc41a5e241c32d574c93de8a2bc : Socket Window WordCount (RUNNING)
--------------------------------------------------------------
获取到 JobId 后,就可以使用 flink cancel 命令取消作业:
bin/flink cancel ba2b1cc41a5e241c32d574c93de8a2bc
2.4 停止 Flink
命令如下:
bin/stop-cluster.sh
2.2 Standalone Cluster
Standalone Cluster 模式是 Flink 自带的一种集群模式,具体配置步骤如下:
3.1 前置条件
使用该模式前,需要确保所有服务器间都已经配置好 SSH 免密登录服务。这里我以三台服务器为例,主机名分别为 hadoop001,hadoop002,hadoop003 ,
其中 hadoop001 为 master 节点,其余两台为 slave 节点,搭建步骤如下:
3.2 搭建步骤
修改 conf/flink-conf.yaml 中 jobmanager 节点的通讯地址为 hadoop001:
jobmanager.rpc.address: hadoop001
修改 conf/slaves 配置文件,将 hadoop002 和 hadoop003 配置为 slave 节点: