Flink安装部署
简介
GitHub:https://github.com/apache/flink
下载
https://archive.apache.org/dist/flink/
https://flink.apache.org/downloads/
https://github.com/apache/flink/releases/tag/release-1.17.1
安装包大约500MB:
1 2 3 | wget https://dlcdn.apache.org/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz wget https://archive.apache.org/dist/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz |
安装概述
Flink 支持多种安装模式。
- local[本地]单机模式 -------单机模式, 一般不使用
- standalone --------独立模式, Flink 自带集群,开发测试环境使用
- yarn ------计算资源统一由 Hadoop YARN 管理,生产环境测试
standalone 集群环境
需要准备 3 台Linux 机器。具体要求如下:
- 安装 Java 8。
- ssh 免密码登录【 集群内节点之间免密登录】
local本地模式安装
原理
操作
1.下载安装包
https://archive.apache.org/dist/flink/
2.上传flink-1.13.1-bin-scala_2.12.tgz到node1的指定目录
3.解压
tar -zxvf flink-1.13.1-bin-scala_2.12.tgz
4.如果出现权限问题,需要修改权限
chown -R root:root /export/server/flink-1.13.1
5.改名或创建软链接
mv flink-1.13.1 flink
ln -s /export/server/flink-1.13.1 /export/server/flink
测试
1.准备文件/root/words.txt
vim /root/words.txt
1 2 3 4 | hello me you her hello me you hello me hello |
2.启动Flink本地“集群”
1 2 3 4 | vi /usr/local/flink/conf/flink-conf.yaml -- rest.bind-address: 0.0.0.0 /usr/local/flink/bin/start-cluster.sh |
3.使用jps可以查看到下面两个进程
- TaskManagerRunner
- StandaloneSessionClusterEntrypoint
4.访问Flink的Web UI
slot在Flink里面可以认为是资源组,Flink是通过将任务分成子任务并且将这些子任务分配到slot来并行执行程序。
5.执行官方示例
1 | /export/server/flink/bin/flink run /export/server/flink/examples/batch/WordCount.jar --input /root/words.txt --output /root/out |
6.停止Flink
/export/server/flink/bin/stop-cluster.sh
启动shell交互式窗口(目前所有Scala 2.12版本的安装包暂时都不支持 Scala Shell)
/export/server/flink/bin/start-scala-shell.sh local
执行如下命令
1 | benv.readTextFile("/root/words.txt").flatMap(_.split(" ")).map((_,1)).groupBy(0).sum(1).print() |
退出shell
:quit
Standalone独立集群模式安装
原理
操作
1.集群规划:
- 服务器: node1(Master + Slave): JobManager + TaskManager
- 服务器: node2(Slave): TaskManager
- 服务器: node3(Slave): TaskManager
2.修改flink-conf.yaml
vim /export/server/flink/conf/flink-conf.yaml
1 2 3 4 5 6 7 8 9 | jobmanager.rpc.address: node1 taskmanager.numberOfTaskSlots: 2 web.submit.enable: true #历史服务器 jobmanager.archive.fs.dir: hdfs://node1:8020/flink/completed-jobs/ historyserver.web.address: node1 historyserver.web.port: 8082 historyserver.archive.fs.dir: hdfs://node1:8020/flink/completed-jobs/ |
2.修改masters
vim /export/server/flink/conf/masters
1 | node1:8081 |
3.修改slaves
vim /export/server/flink/conf/workers
1 2 3 | node1 node2 node3 |
4.添加HADOOP_CONF_DIR环境变量
vim /etc/profile
1 | export HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop |
5.分发
scp -r /export/server/flink node2:/export/server/flink
scp -r /export/server/flink node3:/export/server/flink
scp /etc/profile node2:/etc/profile
scp /etc/profile node3:/etc/profile
或
1 | for i in {2..3}; do scp -r flink node$i:$PWD; done |
6.source
source /etc/profile
测试
1.启动集群,在node1上执行如下命令
/export/server/flink/bin/start-cluster.sh
或者单独启动