独立集群
本文介绍了如何在静态(但可能是异构)群集上以完全分布式方式部署 Flink 集群并运行 Flink 程序。
目录
环境准备
独立集群部署方式需要 一个 master 节点 和 至少一个 worker 节点,请确认每个节点都安装了以下软件:
- Java >= 1.8.x
- ssh (flink 需要用到 sshd 对分布式节点进行控制)
确保所有集群节点之间可互相 SSH免密登录。
Flink 设置
前往 Flink 官网 获取 Flink。
确保选择与您的 Hadoop 版本匹配的 Flink 软件包。 如果您不打算使用 Hadoop,可以选择任何版本。本文所选版本为 Flink-1.11。
下载完成 Flink 后,复制到每个节点并解压缩,确保 Flink 在每个节点的 存放路径相同。
tar xzf flink-*.tgz
配置 Flink
通过编辑 conf / flink-conf.yaml 配置 Flink 集群。一般来说,需要根据每台节点的资源情况修改以下配置:
- jobmanager.rpc.address 指向集群 master 节点;
- jobmanager.memory.process.size 允许 jobmanager 获取的最大内存,单位 MB;
- taskmanager.memory.process.size 允许 taskmanager 获取的最大内存,单位 MB;
- taskmanager.numberOfTaskSlots 节点可用 CPU 数量;
- parallelism.default 集群可用 CPU 数量,为所有 worker 节点 taskmanager.numberOfTaskSlots 之和;
- io.tmp.dirs 临时文件存放目录;
更多详细配置项请参见 Flink 配置文档,关于 Flink 内存分配,请参见 Flink 内存分配文档
在集群中选择一个节点作为 master,其余节点规划为 worker。
编辑每台 worker 节点的 conf / workers 文件,将所有 worker 节点的 IP list 或 hostname list 保存其中。
本文利用 3 个节点搭建 Flink 集群,IP 地址分别为 192.168.1.6, 192.168.1.7 和 192.168.1.8,hostname 分别为 ubuntu-01, ubuntu-02, ubuntu-03。
选择 192.168.1.6 作为 master 节点,其余两台作为 worker 节点。

启动 Flink
登录到 master 节点并切换到 Flink 工作目录,启动 Flink 集群:
bin/start-cluster.sh

此时会在 master 节点拉起一个 jobmanager,并通过 SSH 在 workers 配置文件中的每个节点拉起一个 taskmanager。
浏览器打开 Flink 监控页面:192.168.1.6:8081,如果集群启动成功,则会看到集群中的 Available Task Slots 数量信息。

现在,master 节点的 jobmanager 会在配置的 RPC 端口(默认为6123)接受作业;
提交一个 Flink 自带的样例程序测试一下,依次点击左侧菜单栏 Submit New Job -> Add New,添加样例程序 flink/examples/streaming/WordCount.jar

点击 Submit 按钮提交任务,可以看到任务的执行状态,以及各项监控指标:

WordCount 被提交到了其中一个 TaskManager 上执行,单词统计结果已经输出到了控制台:

Flink 集群的关闭方式:
bin/stop-cluster.sh

新增 JobManager/TaskManager
在新增的节点上执行以下脚本即可完成增加 JobManager/TaskManager
新增 JobManager
bin/jobmanager.sh ((start|start-foreground) [host] [webui-port])|stop|stop-all
新增 TaskManager
bin/taskmanager.sh start|start-foreground|stop|stop-all
如果您在搭建 Flink 集群的过程中遇到了问题,欢迎留言讨论~
108

被折叠的 条评论
为什么被折叠?



