Apache Doris IP变更问题详解

Apache Doris IP变更问题详解

  • 一、背景
  • 二、环境
    • 硬件信息
    • 软件信息
  • 三、FE恢复
    • 3.1 异常日志
    • 3.2 获取当前ip
    • 3.3 重置ip信息
    • 3.4 重置元数据记录
    • 3.5 元数据模式恢复
    • 3.6 重置fe集群节点
    • 3.7 关闭元数据模式重启fe
  • 四、BE恢复
    • 4.1 获取当前ip
    • 4.2 重置ip信息
    • 4.3 重置be集群节点

一、背景

因为有多网卡的存在,或因为安装过 docker 等环境导致的虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Apache Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过 priority_networks 配置项来强制指定正确的 IP。

priority_networks 是 FE 和 BE 都有的一个配置,配置项需写在 fe.conf 和 be.conf 中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。示例如下:

priority_networks=10.1.3.0/24

这是一种 CIDR 的表示方法。FE 或 BE 会根据这个配置项来寻找匹配的IP,作为自己的 localIP。

CIDR采用斜线记法,表示为:IP地址/网络ID的位数。
具体换算方法可以看下面两个例子。

  1. 192.168.0.0/16,换算为32位二进制地址:11000000.10101000.00000000.00000000。其中/16表示16位网络ID,即32位二进制地址中前16位是固定不变的,对应网段为:11000000.10101000.00000000.00000000~11000000.10101000.11111111.11111111。
  2. 192.168.1.2/24,换算为32位二进制地址:11000000.10101000.00000001.00000000。其中/24表示32位二进制地址中前24位是固定不变的,对应网段为:11000000.10101000.00000001.00000000~11000000.10101000.00000001.11111111

当出现如下场景时,ip会变更,从而导致fe/be异常无法正常启动运作

  1. 集群迁移导致ip网段变更
  2. 虚拟环境中动态地址导致ip变更
  3. 重启fe/be前未正常配置priority_networks导致重启后获取的ip与元数据中的不一致

二、环境

硬件信息

  1. CPU :1C
  2. CPU型号:ARM64
  3. 内存 :2GB
  4. 硬盘 :36GB SSD

软件信息

  1. VM镜像版本 :CentOS-7
  2. Apahce Doris版本 :1.2.4.1
  3. 集群规模:1FE * 3BE

三、FE恢复

3.1 异常日志

查看fe.out会报如下异常,此时fe进程是无法启动的;
操作前注意备份所有fe的元数据停止上游读写动作

在这里插入图片描述

3.2 获取当前ip

ip addr

在这里插入图片描述

3.3 重置ip信息

重置ip信息后还是会报如上异常

# 修改fe.conf的priority_networks
priority_networks = 192.168.0.0/16
# 或者
priority_networks = 192.168.31.78/16

3.4 重置元数据记录

重置元数据记录后fe进程虽然能够启动,但是不可用

# 注释掉fe元数据中之前记录的老ip
vim doris-meta/image/ROLE

在这里插入图片描述

3.5 元数据模式恢复

# 在fe.conf中新增metadata_failure_recovery=true启用恢复模式重启fe
vim fe.conf
metadata_failure_recovery=true# 此时进入http://192.168.31.78:8030/login 可以打开fe web ui说明可以正常启动fe了

在这里插入图片描述

3.6 重置fe集群节点

虽然使用元数据恢复模式fe目前能够启动,但是还没完全恢复,因为当前fe元数据中记录的集群节点中并没有刚刚修改的ip节点

# 在mysql客户端或者web ui的Playground执行如下sql更新fe元数据中记录的fe节点
# 移除老ip节点
ALTER SYSTEM DROP FOLLOWER "192.168.31.81:9010";# 新增新ip节点
ALTER SYSTEM ADD FOLLOWER "192.168.31.78:9010";

老ip节点如下

老ip节点

新ip节点如下

新ip节点

3.7 关闭元数据模式重启fe

# 在fe.conf中注释metadata_failure_recovery=true关闭恢复模式重启fe
vim fe.conf
#metadata_failure_recovery=true# 此时进入http://192.168.31.78:8030/login 可以打开fe web ui说明fe完全恢复了

四、BE恢复

4.1 获取当前ip

ip addr

在这里插入图片描述

4.2 重置ip信息

# 修改be.conf的priority_networks
priority_networks = 192.168.0.0/16
# 或者
priority_networks = 192.168.31.136/16
# 设置完成后重启be即可恢复

4.3 重置be集群节点

虽然当前be已经能够启动,但是还没完全恢复,因为当前fe元数据中记录的be集群节点中并没有刚刚修改的be节点

# 在mysql客户端或者web ui的Playground执行如下sql更新fe元数据中记录的be节点
# 移除老ip节点
ALTER SYSTEM DROPP FOLLOWER "192.168.31.81:9010";
ALTER SYSTEM DROPP FOLLOWER "192.168.31.72:9010";
ALTER SYSTEM DROPP FOLLOWER "192.168.31.133:9010";# 新增新ip节点
ALTER SYSTEM ADD FOLLOWER "192.168.31.78:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.31.71:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.31.136:9010";

3台be都重置后完全恢复如下

在这里插入图片描述

Apache Doris 因为IP变更导致的集群异常问题至此已处理恢复完成,查阅过程中若遇到问题欢迎留言交流

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

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

相关文章

【java】【项目实战】[外卖一]软件开发实战流程分析、介绍、准备

前言:开始java项目实战了,紧张、刺激不。本文介绍软件开发流程以及本外卖项目的介绍 一、软件开发流程 二、角色分工 三、软件环境 四、外卖项目介绍 4.1 项目介绍 4.1.1 管理端(后台系统) 4.1.2 用户端(业务系统) 4.2 产品原型展示 4.2.1 管理端原型…

小米AI音箱联网升级折腾记录(解决配网失败+升级失败等问题)

小米AI音箱(一代)联网升级折腾记录 我折腾了半天终于勉强能进入下载升级包这步,算是成功一半吧… 总结就是,网络信号一定要好,需要不停换网找到兼容的网,还需要仔细配置DNS让音响连的上api.mina.mi.com 推荐…

数据结构(Java实现)-集合与时间和空间复杂度

什么是集合框架 Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。 什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之…

常见前端面试之VUE面试题汇总六

17. MVVM 的优缺点? 优点: 分离视图(View)和模型(Model),降低代码耦合,提⾼视图或者 逻辑的重⽤性: ⽐如视图(View)可以独⽴于 Model 变化和修改,⼀个 ViewModel 可以…

【Java】基础练习(十一)

1.Poker 定义两个数组,一个数组存储扑克牌花色,另一个数组存储扑克牌(A~K),输出52张扑克牌(除大小王) ♥A、♥2...(1)Poker类: package swp.kaifamiao.cod…

图为科技-边缘计算在智慧医疗领域的作用

边缘计算在智慧医疗领域的作用 随着科技的进步,智慧医疗已成为医疗行业的重要发展趋势。边缘计算作为新兴技术,在智慧医疗领域发挥着越来越重要的作用。本文将介绍边缘计算在智慧医疗领域的应用及其优势,并探讨未来发展方向。 一、边缘计算…

十、pikachu之php反序列化

文章目录 1、php反序列化概述2、实战3、关于Magic function4、__wakeup()和destruct() 1、php反序列化概述 在理解这个漏洞前,首先搞清楚php中serialize(),unserialize()这两个函数。 (1)序列化serialize():就是把一个…

python自动化入门之Python编写脚本实现自动化爬虫详解

想知道如何使用Python轻松高效地获取网络上的信息? 本篇文章将探索Python自动化爬虫,并展示如何编写实用的脚本。 1. 什么是Python爬虫? 爬虫顾名思义,就是像蜘蛛一样在网络上爬行,抓取各种有用信息的一种程序。而Pyt…

上半年营收19亿,金融壹账通第二增长曲线“加速上坡”

8月16日,壹账通金融科技有限公司(下称“金融壹账通”)发布了截至2023年6月30日中期业绩报告。 根据财报,2023年上半年,金融壹账通实现营收18.99亿元,毛利润为6.96亿元;归母净利润率从-26.1%提升…

【前端】深入解析CSS:选择器、显示模式、背景属性和特征剖析

目录 一、前言二、CSS的复合选择器1、后代选择器①、语法②、注意事项 2、子选择器①、语法②、注意事项 3、并集选择器①、语法②、注意事项 4、链接伪类选择器①、语法②、注意事项 三、CSS元素显示模式转换1、转换为块元素display:block2、转换为行内元素display:inline3、转…

synchronized锁升级

在 Java SE 1.6中, 锁 一共有 4 种状 态 , 级别 从低到高依次是:无 锁 状 态 、偏向 锁 状 态 、 轻 量 级锁 状 态和重量 级锁 状 态 , 这 几个状 态 会随着 竞 争情况逐 渐 升 级 。 锁 可以升 级 但不能降 级 ,意味…

c语言函数指针和指针函数的区别,以及回调函数的使用。

函数指针是什么,函数指针本质也是指针,不过是指向函数的指针,存储的是函数的地址。 指针函数是什么,指针函数其实就是返回值是指针的函数,本质是函数。 函数指针是如何定义的呢,如下 void (*pfun)(int a,int b) 这…