Flink 基础学习(八) 手把手教你搭建伪集群 HA

本文详细介绍了如何搭建Flink的伪集群高可用环境,涉及Zookeeper和Hadoop的安装,以及Flink配置和启动过程中的常见问题与解决方法,通过实例演示了主节点故障时的集群切换。
摘要由CSDN通过智能技术生成

o点击蓝色“Java极客技术”关注我哟

加个“星标”,一起快乐成长


这是 Java 极客技术的第 277 篇原创文章

1 前言

前面理论性的知识是不是有点太“干货”,所以来点实战性的内容吧,这次记录了如何搭建高可用的 Flink 集群。

在正式配置前,来讲下为何要配置高可用(High Availability

目前越来越多公司的线上应用,都采用的是分布式架构(一主多从),从而避免单点故障引起的服务不可用。

而在 Flink 中,同样也有集群保障服务的高可用,任何时候都有一个主 JobManager 和多个备 JobManager,当前主节点宕机后,立刻会有备 JobManager 当选成为主 JobManager ,接管集群,让每个作业继续正常进行。

出于这样的考虑,在 Flink 应用上线前,需要有这样一个集群来进行保障,下面就来看下该如何进行配置吧。

2 前置工作

2.1 机器准备

在本次搭建前,我通过了本地单机模拟,监听了 8081 和 8082 端口,启动了两个 JobManager 和三个 TaskManager

序号 IP 启动进程 UI PORT
1 127.0.0.1 JobManager、TaskManager 8081
2 127.0.0.1 JobManager、TaskManager 8082
3 127.0.0.1 TaskManager /

一般来说,JobManager 任务调度器所在的机器配置可以低一些,而 TaskManager 任务执行者所在的机器配置会高一些,所以基于上述机器的配置,请各位使用时进行合理分配。

2.1.2 机器之间 SSH 免密登录

本质上,我们只需要修改一份配置,然后将修改后的 Flink 包通过 SCP 命令传送到其它机器上。

接着在单台服务器上启动,它会根据 mastersslaves 文件找到对应的服务器,登录上去,判断启动 JobManagerTaskManager 或者两者都启动。

总结一下机器之间 SSH 免密登录的要点:

1. 每台机器生成公私钥:ssh-keygen 命令

2. 将本机生成的公钥(id_rsa.pub)拷贝到其它机器的认证列表中(authorized_keys)

使用该命令 ssh-copy-id -i id_rsa.pub root@118.25.xxx.xxx

3. 重复上述命令,将本机的公钥添加到集群中的每一台服务器上

4. 免密登录所在的服务器,就是待会我们启动 ./start_cluster.sh 脚本所在的服务器哟

参考上面的图片,将公钥拷贝到远程服务器后,我们就能通过 ssh root@xxx.xxx.xx.xx,免密码登录到远程服务器啦。

2.2 安装 Zookeeper

为了启用 JobManager 高可用这个功能,需要在 flink_conf.yaml 中将 高可用模式 设置为 zookeeper

Flink 利用 Zookeeper 管理 JobManagerTaskManager,进行分布式协调(熟悉 Dubbo 系的小伙伴,应该对我们的 Zookeeper 注册中心感到熟悉)。

Zookeeper 是独立于 Flink 的一项服务,该服务通过节点选举和轻量级一致状态存储提供高

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值