Flink 搭建 - 本地模式
Apache Flink 1.10 Documentation
模式说明
本地模式适用于本地开发和测试环境,占用的资源较少,部署简单
① 本地模式(Local Mode)
JobManager 和 TaskManager 运行在一个 JVM 进程中
② 本地集群模式(Local Cluster Mode)
JobManager 和 TaskManager 分别运行在一个 JVM 进程中
安装准备
① 环境准备
Linux 服务器
② 下载安装包
Apache Flink: Downloads: flink-1.10.0-bin-scala_2.11.tgz
注意:本博客基于 Flink 1.10
版本安装
# 版本说明
# 1.10.0 是 flink 的版本,2.11 是 scala 的版本
flink-1.10.0-bin-scala_2.11.tgz
安装配置
① 上传解压
cd /opt/server
chmod u+x flink-1.10.0-bin-scala_2.11.tgz
tar -zxvf flink-1.10.0-bin-scala_2.11.tgz
② 软连接
cd /opt/server
chown -R root:root flink-1.10.0
ln -s /opt/server/flink-1.10.0 /opt/server/flink
启动方式一:本地模式启动
① 启动本地 flink
cd /opt/server/flink
bin/start-scala-shell.sh local
② 测试批处理(本地文件读取)
# 创建测试文件
vim /opt/server/words.txt
# 增加以下内容
aaa bbb ccc ddd
lucy jack lucy
Beijing Wuhan
jack
// 读取本地文件
benv.readTextFile("/opt/server/words.txt").flatMap(_.split(" ")).map((_,1)).groupBy(0).sum(1).print()
③ 测试流处理
注意:工具执行和流读取是在两个窗口执行
# 安装消息发送工具
yum install -y nc
# 启动工具,端口为 9999
nc -lk 9999
// 实时读取端口数据
senv.socketTextStream("node1", 9999).flatMap(_.split("\\s+")).map((_, 1)).keyBy(0).sum(1).print()
// 执行
senv.execute("WordCount")
④ 访问UI
启动方式二:本地集群模式启动
① 本地集群模式启动
# 启动集群
cd /opt/server/flink
bin/start-cluster.sh
# 停止集群(不用的时候可以停止)
/bin/stop-cluster.sh
② 执行批处理
cd /opt/server/flink
bin/flink run /opt/server/flink/examples/batch/WordCount.jar --input /opt/server/words.txt
③ 执行流处理
# 启动输出工具
nc -lk 9000
# 启动测试用例
bin/flink run /opt/server/flink/examples/streaming/SocketWindowWordCount.jar --port 9000
④ 查看测试用例结果输出