Apache Flink Standalone 集群搭建

背景

因参与大数据项目调研需要使用Apache Flink进行数据处理并写入Elasticsearch数据库,故而整理该集群搭建文章避免遗忘。本次搭建使用三台物理服务器。

服务器信息

192.168.2.244(master、slave)
192.168.2.245(slave)
192.168.2.246(slave)

192.168.2.244作为master节点,同时兼slave节点
其他两台服务器作为slave节点

操作系统

  1. Cent OS 7

软件版本

  1. JDK 14.0.2
  2. Apache Flink 1.10.0

搭建步骤

  1. 安装JDK 14.0.2,配置JAVA_HOME等环境变量
  2. slave节点,配置无密码登录
  3. 三台服务器执行以下命令创建目录
    3.1 mkdir -p /data/tools/ /data/flinkdata
  4. master节点服务器执行以下操作
    4.1 拷贝Flink程序包到 /data/tools 目录
    4.2 解压Flink程序包
    4.3 进行Flink程序目录
    4.4 配置conf/flink-conf.yaml文件
    4.5 配置conf/masters
    4.6 配置conf/slaves
    4.7 scp -r 修改好配置的Flink目录复制到slave服务器/data/tools/目录,目录路径要求和master节点一致
    4.8 bin/start-cluster.sh 启动集群

flink-conf.yaml配置

jobmanager.memory.process.size: 4096m //根据服务器内存设置
taskmanager.numberOfTaskSlots: 128   //根据服务器CPU核心数修改
io.tmp.dirs: /data/flinkdata
cluster.evenly-spread-out-slots: true 
jobmanager.rpc.address: 192.168.2.244 //master服务器的IP

cluster.evenly-spread-out-slots
true: 将工作负载分散到所有当前可用的TMs上。
false: 只有单台服务器负载满了,才会将任务分配给下台服务器

举栗子:
假如三台服务器集群,每台128 Slots。如果只运行9 Slot的任务,cluster.evenly-spread-out-slots为false的情况下,那这任务只会跑一台服务器上。反之会平均分配到集群的每台服务器。

关于该配置项有个奇怪的现象:
在两个机房搭建过Flink集群,同样的软件,同样的配置(没有配置cluster.evenly-spread-out-slots),唯一区别的就是一个机房是同等配置的4台服务器(Slot: 128 x 4,以下简称:机房A),一个机房是配置差异的3台服务器(Slot分别为:20 x 2、64 x 1,以下简称:机房B)

机房B
cluster.evenly-spread-out-slots没有设置,但是16 Slot的任务在运行的时候平均分配到对应的服务器

机房A
cluster.evenly-spread-out-slots没有设置,但是16 Slot的任务在运行的时候不会平均分配到对应的服务器。只有将cluster.evenly-spread-out-slots设置为true的时候,才会均分。

masters配置

192.168.2.244:8081

slaves配置

192.168.2.244
192.168.2.245
192.168.2.246

参考链接

Flink官方集群搭建教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值