Flink 高可用之StandAlone-HA模式(一)

obManager存在单点故障(SPOF:Single Point Of Failure),因此对Flink做HA,主要是对JobManager做HA,根据Flink集群的部署模式不同,分为Standalone、OnYarn,本文主要涉及Standalone模式。

    JobManager的HA,是通过Zookeeper实现的,因此需要先搭建好Zookeeper集群,同时HA的信息,还要存储在HDFS中,因此也需要Hadoop集群,最后修改Flink中的配置文件。

Flink 高可用之StandAlone-HA模式

压缩包:

tar -xvzf flink-1.9.1-bin-scala_2.11.tgz -C /opt && cd /opt/flink-1.9.1

集群规划:

  1.集群规划

  • - 服务器: node1(Master + Slave): JobManager + TaskManager
  • - 服务器: node2(Master + Slave): JobManager + TaskManager
  • - 服务器: node3(Slave): TaskManager
  1. 、修改flink-conf.yaml

jobmanager.rpc.port: 6123
jobmanager.bind-host: 0.0.0.0
jobmanager.memory.process.size: 3600m
taskmanager.bind-host: 0.0.0.0
taskmanager.host: 10.100.175.90
taskmanager.numberOfTaskSlots: 64
taskmanager.memory.jvm-metaspace.size: 3G
high-availability.type: zookeeper
high-availability.storageDir: hdfs://xxx:8020/flink-1.18/ha/     
high-availability.zookeeper.quorum: xxx:2181,xxx:2181,xxx:2181
# high-availability.zookeeper.client.acl: open
high-availability.zookeeper.path.root: /flink
state.checkpoints.dir: hdfs://xxx.76:8020/flink-1.18/flink-checkpoints
state.savepoints.dir: hdfs://xxx.76:8020/flink-1.18/flink-savepoints
jobmanager.execution.failover-strategy: region
rest.port: 8081
rest.address: 0.0.0.0
rest.bind-address: 0.0.0.0
jobmanager.archive.fs.dir: hdfs://xxx:8020/flink-1.18/completed-jobs/
historyserver.archive.fs.dir: hdfs://xxx:8020/flink-1.18/completed-jobs/
restart-strategy: none

#开启HA,使用文件系统作为快照存储

state.backend: filesystem

#启用检查点,可以将快照保存到HDFS

state.checkpoints.dir:hdfs://server2:8020/flink-checkpoints

#使用zookeeper搭建高可用

high-availability: zookeeper

#存储JobManager的元数据到HDFS

high-availability.storageDir: hdfs://server2:8020/flink/ha/

#配置ZK集群地址

high-availability.zookeeper.quorum: server1:2118,server2:2118,server3:2118

2)、修改masters

vim /usr/local/flink-1.13.5/conf/masters

server1:8081

server2:8081

修改完后,使用scp命令将masters文件同步到其他节点

3)、修改works文件

server1

server2

修改完后,使用scp命令将works文件同步到其他节点

4)conf/zoo.cfg修改

# ZooKeeper quorum peers
server.1=DEV-SH-MAP-01:2888:3888
server.2=DEV-SH-MAP-02:2888:3888
server.3=DEV-SH-MAP-03:2888:3888

修改完后,使用scp命令将masters文件同步到其他节点

4)、分发(scp分发)

scp -r /usr/local/flink-1.13.5/conf/flink-conf.yaml server2:/usr/local/flink-1.13.5/conf/

scp -r /usr/local/flink-1.13.5/conf/flink-conf.yaml server3:/usr/local/flink-1.13.5/conf/

scp -r /usr/local/flink-1.13.5/conf/flink-conf.yaml server4:/usr/local/flink-1.13.5/conf/

scp -r /usr/local/flink-1.13.5/conf/masters server2:/usr/local/flink-1.13.5/conf/

scp -r /usr/local/flink-1.13.5/conf/masters server3:/usr/local/flink-1.13.5/conf/

scp -r /usr/local/flink-1.13.5/conf/masters server4:/usr/local/flink-1.13.5/conf/

5)、修改修改node2上的flink-conf.yaml

        Jobmanager.rpc.address: node2

、启动HDFS

[root@DEV-SH-MAP-01 conf]# start-dfs.sh

Starting namenodes on [DEV-SH-MAP-01] DEV-SH-MAP-01: starting namenode, logging to /usr/hadoop-2.7.3/logs/hadoop-root-namenode-DEV-SH-MAP-01.out DEV-SH-MAP-02: starting datanode, logging to /usr/hadoop-2.7.3/logs/hadoop-root-datanode-DEV-SH-MAP-02.out DEV-SH-MAP-03: starting datanode, logging to /usr/hadoop-2.7.3/logs/hadoop-root-datanode-DEV-SH-MAP-03.out DEV-SH-MAP-01: starting datanode, logging to /usr/hadoop-2.7.3/logs/hadoop-root-datanode-DEV-SH-MAP-01.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /usr/hadoop-2.7.3/logs/hadoop-root-secondarynamenode-DEV-SH-MAP-01.out

八、启动Zookeeper集群

[root@DEV-SH-MAP-01 conf]# start-zookeeper-quorum.sh

Starting zookeeper daemon on host DEV-SH-MAP-01. Starting zookeeper daemon on host DEV-SH-MAP-02. Starting zookeeper daemon on host DEV-SH-MAP-03.

  1. 启动集群

   /bin/start-cluster.sh

  停止集群

   /bin/stop-cluster.sh

  1. 查看进程     

 cat /export/server/flink/log/flink-root-standalonesession-0-node1.log

分发包:

for i in {2..3}; do scp -r flink-shaded-hadoop-2-uber-2.7.5-10.0.jar node$i:$PWD; done

注意:修改域名

vi hostname 

cat  hostname 

改完以后,添加到hosts中:

改完之后将每台服务器的对应信息添加到hosts文件

vim /etc/hosts

# 添加以下内容到文件中

192.168.188.135 node1-zookeeper

192.168.188.136 node2-zookeeper

192.168.188.137 node3-zookeeper

测试联通性: 比如: ping  node3-zookeeper

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/329248.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言数据分析案例-巴西固体燃料排放量预测与分析

1 背景 自18世纪中叶以来,由于快速城市化、人口增长和技术发展,导致一氧化二氮(N2O)、 甲烷(CH4)和二氧化碳(CO 2)等温室气体浓度急剧上升,引发了全球变暖、海平面上 升…

别说废话!说话说到点上,项目高效沟通的底层逻辑揭秘

假设你下周要在领导和同事面前汇报项目进度,你会怎么做?很多人可能会去网上搜一个项目介绍模板,然后按照模板来填充内容。最后,汇报幻灯片做了 80 页,自己觉得非常充实,但是却被领导痛批了一顿。 这样的境…

景源畅信电商:抖店怎么提高店铺的权重?

在竞争激烈的电商市场,如何提升抖店店铺权重成为商家关注的焦点。店铺权重是决定商品搜索排名的关键因素之一,直接关系到店铺流量和销量。提高店铺权重并非一蹴而就,而是一个系统工程,需要从多个维度着手优化。 一、优化商品标题和…

(二)vForm 动态表单设计器之下拉、选择

系列文章目录 (一)vForm 动态表单设计器之使用 目录 系列文章目录 前言 一、后端需提供接口 二、组件配置 总结 前言 动态表单下拉、选择等组件,大概率要使用数据库中的数据,那么vForm如何拿到数据库中的数据呢?跟随…

Java ( 框架界面 , 按钮 , 动作监听ActionListener ,鼠标监听MouseListener,键盘监听KeyListener)的使用方法

package 拼图阶段任务.ui;import javax.swing.*; import java.awt.*; import java.awt.event.*;public class UseMethod {public static void main(String[] args) { // 框架的用法JFrame jf new JFrame();// 设置界面的宽高jf.setSize(603,680);// 设置界面的标题jf.setTitle…

Linux: network: send 失败的时候要不要close socket?

最近遇到一个例子,说有zerowindow出现;出现的原因是接收方的CPU被其他程序吃光,导致socket的read函数处理非常慢。说明接收端的接收缓存不够用。发送端自然而然的要停止发送。 但是如果在接收方的recv buff,以及发送方的send buf…

智能车竞赛指南:从零到一,驶向自动驾驶的未来

智能车竞赛指南:从零到一,驶向自动驾驶的未来 一、智能车竞赛概览1.1 竞赛介绍1.2 竞赛分类 二、智能车开发技术基础2.1 硬件平台2.2 软件开发 三、实战案例:循线小车开发3.1 系统架构3.2 代码示例 四、技术项目:基于ROS的视觉导航…

PersonalLLM——探索LLM是否能根据五大人格特质重新塑造一个新的角色?

1.概述 近年来,大型语言模型(LLMs),例如ChatGPT,致力于构建能够辅助人类的个性化人工智能代理,这些代理以进行类似人类的对话为重点。在学术领域,尤其是社会科学中,一些研究报告已经…

Nacos 进阶篇---Nacos服务端怎么维护不健康的微服务实例 ?(七)

一、引言 在 Nacos 后台管理服务列表中,我们可以看到微服务列表,其中有一栏叫“健康实例数” (如下图),表示对应的客户端实例信息是否可用状态。 那Nacos服务端是怎么感知客户端的状态是否可用呢 ? 本章…

JAVA 中 HTTP 基本认证(Basic Authentication)

目录 服务端这么做服务端告知客户端使用 Basic Authentication 方式进行认证服务端接收并处理客户端按照 Basic Authentication 方式发送的数据 客户端这么做如果客户端是浏览器如果客户端是 RestTemplat如果客户端是 HttpClient 其它参考 服务端这么做 服务端告知客户端使用 …

Unity数据持久化2——XML

简介: 基础知识 XML文件格式 XML基本语法 XML属性 练习: C#读取存储XML XML文件存放位置 读取XML文件 练习: 存储修改XML文件 练习: 总结 实践小项目 必备知识点 必备知识点——C#中XML序列化 必备知识点——C#中XML反序列化 必备…

5.23-

回顾 I0多路复用的原理? 程序首先向操作系统发起一个IO多路复用请求,告诉操作系统需要监视哪些IO通道。这些IO通道可以包括网络套接字、文件描述符等操作系统随后会将这些IO通道放入一个队列中,并在某个IO通道就绪时(如数据到达、文件可读…

Servlet的request对象

request对象的继承关系 1.HttpServletRequest接口继承了ServletRequest接口,对其父接口进行了扩展,可以处理满足所有http协议的请求 2.HttpServletRequest和ServletRequest都是接口,不能创建对象,因此在tomcat底层定义实现类并创…

Mysql总结1

Mysql常见日志 (1)错误日志:记录数据库服务器启动、停止、运行时存在的问题; (2)慢查询日志:记录查询时间超过long_query_time的sql语句,其中long_query_time可配置,且…

Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明

Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明 目录 Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明 一、简单介绍 二、单变量非线性变换 三、自…

园区网的基本了解

园区网使用的典型技术---IEEE802.3标准/IEEE802.11标准 封闭式园区网络 ---由内部人员使用,不能访问互联网。 ---制订各式各样的规章制度 ---NAC,网络接入控制 开放式园区网络 ---服务于公众的,认证 园区网的发展 第一代:…

驱动未来:IT行业的现状与发展趋势

前言 随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。本文将探讨IT行业的现状和未来发展趋势,并邀请行业领袖、技术专家和…

如何理解kmp的套娃式算法啊?

概念 KMP算法,全称Knuth Morris Pratt算法 。文章大部分内容出自《数据结构与算法之美》 核心思想 假设主串是a,模式串是b 在模式串与主串匹配的过程中,当遇到不可匹配的字符的时候,对已经对比过的字符,是否能找到…

开源大模型与闭源大模型:技术哲学的较量

目录 前言一、 开源大模型的优势1. 社区支持与合作1.1 全球协作网络1.2 快速迭代与创新1.3 共享最佳实践 2. 透明性与可信赖性2.1 审计与验证2.2 减少偏见与错误2.3 安全性提升 3. 低成本与易访问性3.1 降低研发成本3.2 易于定制化3.3 教育资源丰富 4. 促进标准化5. 推动技术进…

【数学】泰勒公式

目录 引言 一、泰勒公式 1.泰勒公式及推导 (1)推导 (2)公式 2.泰勒中值定理 (1)定理1(佩亚诺余项) (2)定理2(拉格朗日余项) …