Doris2.0 部署流程、遇到的问题及1.0升级至2.0流程整理

背景

Doris 1.0 版本总是出现副本损坏问题,机器资源充足,FE 和 BE 数据足够,每日的数据量一般,但是总是隔三差五出现入库时副本损坏问题。Doris 已经发布了2.0 版本,本周又发布了新版本 2.0.5。升级 Doris 能否解决副本损坏问题呢?本周做了 Doris 的升级及压测,测试程序运行一周,暂时还没有出现副本损坏问题。

本文记录 Doris 2.0.4 集群部署流程及遇到的问题,此外还验证了从 Doris1.0.0 升级到 Doris2.0.4 时数据的迁移过程。

主要内容:

  1. Doris2.0.4 集群部署流程。
  2. Be 启动时 Cluster Id 无效问题及解决办法。
  3. Be 上报磁盘信息失败时,FE 无法识别 Be 而不能创建分区问题。
  4. Doris1.0.0 升级到 Doris2.0.4 的方法,很简单,部署 2.0.4 之后拷贝 1.0.0 对应角色的数据目录即可。

机器准备

官方文档对环境的要求:
在这里插入图片描述

Doris 集群需要的硬件内存和磁盘需要充足,至少 16 G。机器不够,按开发环境,部署 1个 FE 、3 个 BE,Doris 版本 2.0.4 【介质下载两天后又发布了 2.0.5 】:

机器角色
node AFE
node ABE
node BBE
node CBE

机器需要安装 JDK,且内存充足,尽量少部署其他应用。

安装包下载

安装包根据目标机器对 avx2 指令的支持情况分为两种,查看是否支持 avx2 的命令:

cat /proc/cpuinfo |grep avx2

flags 指令集中是否包含 avx2 确定需要下载的名称:
在这里插入图片描述
我用的三台机器,有一台支持 avx2,其他两台不支持,需要两个都下载。2.0 的安装包 2.8G,比 1.0 的安装包整整大了一倍,所以找一台配置了 DNS 域名解析的主机后台执行安装包下载操作:

wget -b  https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.4-bin-x64.tar.gzwget -b https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.4-bin-x64-noavx2.tar.gz

等待下载完成后,将安装包发送到其他两台机器上。

环境配置

Doris 程序安装之前,需要执行一些操作系统配置信息。

1、设置打开文件数。执行编辑命令 vim /etc/security/limits.conf ,在文件末尾输入:

root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
* soft nproc 255446
* hard nproc 255446

2、设置系统中每个进程可以拥有的最大内存映射区域数量 ,vi /etc/sysctl.conf 尾部添加:

vm.max_map_count=2000000

3、加载并应用内核,执行 sysctl -p 生效。

4、执行 swapoff -a 命令,关闭系统上的 swap 分区,将其从可用的交换空间中移除。
在这里插入图片描述
有一台机器上执行该命令时卡住了,一直没有结果,参考《swapoff -a 卡住问题》 该文然后主要设置 vm.overcommit_memory = 0 后才能执行成功。

后面的启动就比较顺利了。

部署 FE

1、解压安装包并重命名:

tar -xvf apache-doris-2.0.4-bin-x64-noavx2.tar.gz
mv apache-doris-2.0.4-bin-x64-noavx2 doris2.0.4

2、Doris 的默认端口都是未被占用的,使用默认配置就可以。直接启动 FE :

bin/start-fe.sh --daemon

3、MySQL 客户端登录,初始默认密码为空,直接访问,然后修改密码:

mysql -h 192.168.xx.a -P 9030 -uroot -p##修改 doris 用户 root 的密码
SET PASSWORD FOR 'root' = PASSWORD('XXX');

4、查看 FE 信息 show proc ‘/frontends’ \G :
在这里插入图片描述
疑惑的地方,前端 Host 信息,这个 IP 不知道是哪里设置的,反正不是 FE 所在主机的地址。

5、FE 的 Web 管理界面访问地址 http://192.168.xx.a:8030/home 。

部署 BE

1、使用默认配置,直接启动 BE :

bin/start-be.sh --daemon

2、鉴于 Doris 太大了,除了 nodeA 机器上同时部署了 FE 和BE,其他俩机器上删除 fe 之外的其他目录以节省空间。

3、BE 加入 FE 集群,MySQL 客户端登录 FE 后,通过命令依次将 nodeA 、nodeB、nodeC 三个节点的 BE 都加入 FE 集群:

ALTER SYSTEM ADD BACKEND "192.168.xx.a:9050";
ALTER SYSTEM ADD BACKEND "192.168.xx.b:9050";
ALTER SYSTEM ADD BACKEND "192.168.xx.c:9050";
show proc '/backends'\G;

注意,集群部署正常的标志并不仅仅是 Alive : true ,还必须能得到 BE 的磁盘资源信息:
在这里插入图片描述
如果出现 AvailCapacity 这个属性是 1.00 B 的时候,就需要注意了,FE 在创建分区的时候就不会将这个 BE 视为正常可用的 backend ,数据库建表语句都会出现异常:
在这里插入图片描述
最初部署的时候,以为是部署过程有问题,反复重新部署还是不能创建表分区。又部署了1.0 的版本,都是正常的。最后把 FE 的部署位置换了后,集群配置成功了,终于看到了和 1.0 版本相同的 BE 信息。

BE 通信无效 cluster_id

中途碰到 FE 连接不到 BE 的情况:在这里插入图片描述
这个问题的解决办法是编辑 BE 的 storage 下的 cluster_id 文件中的值改成 FE 发送心跳时的集群 ID,然后重启 BE 就可以了。

至于这个问题是怎么产生的呢,官网是这么解释的:
在这里插入图片描述

1.0 升级 2.0 的数据

从 1.0 升级到 2.0 的数据迁移,比我想象的容易一点,直接将 1.0 的 FE 和 BE 的数据目录拷贝到 2.0 对应目录即可。

我验证的时候,数据比较少,只有几百条,升级到 2.0 后数据能正常检索。

启示录

集群部署还是很简单的,后面卡在了建表那,查不到卡了半天,一度怀疑新版本有问题。后面想到在同一台机器上部署 FE 和 BE 测测 1.0 版本,正常;又继续只部署一个 FE 和 BE 的2.0 版本,竟然也正常。

卡了好久的问题,竟然换机器就好了,也挺意外的!今天又碰到了 BE 向 FE 的心跳里面磁盘资源信息为 1.000B 的情况,重启了 BE 后又正常了,还没有细究日志。

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

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

相关文章

Jenkins 安装

目录 1、部署 Jenkins 安装配置 Jenkins 解锁 Jenkins 安装 Jenkins 插件 创建管理员账号 手动安装插件 2、Jenkins 从 GitLat 拉取代码 安装 Jenkins 插件 在 node-16 上生成密钥对 把公钥配置到 gitlab 上 把 root 用户私钥配置到 jenkins 上 Jenkins 创建一个任务…

命名空间(namespace)

定义 在C中,命名空间(Namespace)是一个特性,用于封装代码并避免名称冲突。命名空间可以看作是一个容器,其中可以包含类、函数、变量、常量、其他命名空间等。通过使用命名空间,我们可以更好地组织代码&…

面试经典150题 -- 回溯 (总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 17 . 电话号码的字母组合 1 . 先创建一个下标 与 对应字符串映射的数组,这里使用hash表进行映射也是可以的 ; 2 . 对于回溯 ,…

python数据类型及转换

一、数据类型 数据类型分为数值型、布尔型、字符串型等 1.1数值类型 数值类型可以分为整数类型、浮点数类型、复数类型 1.1.1整数类型 (1)概念:整数类型指数值是没有小数部分的,包含正整数、负整数和0 (2)进制种类:十进制--->234、5…

【网站项目】139选课排课系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Redis 群集

简介 在现在的互联网大潮中,NoSQL可谓家喻户晓,Redis作为NoSOL大军中极其重要的一员,是我们走向架构道路的一条必经之路。 Redis介绍 Redis 数据库是一个非关系型数据库,在正式学习Redis之前,我们先来了解关系型数据库…

算法沉淀——动态规划之完全背包问题(leetcode真题剖析)

算法沉淀——动态规划之完全背包问题 01.【模板】完全背包02.零钱兑换03.零钱兑换 II04.完全平方数 完全背包问题是背包问题的一种变体,与01背包问题不同,它允许你对每种物品进行多次选择。具体来说,给定一个固定容量的背包,一组物…

TCPDump 使用教程

每次服务器网络不通的时候,总会听到一个声音,你去抓包啊,那这里就来介绍下TCPDump,一款强大的网络分析工具,可以捕获网络上的数据包,并进行分析。这款工具在网络管理员和安全专家中非常受欢迎。 一、安装 …

防火墙:网络防御的第一道防线

目录 引言 一、安全技术与防火墙 (一)安全技术 (二)防火墙的主要功能与分类 1.防火墙的主要功能 2.防火墙的分类 二、Linux防火墙的基本认识 (一)Netfilter (二)防火墙工具…

单调队列(347. 前 K 个高频元素239. 滑动窗口最大值)

单调队列和单调栈其实差不多,就是维护一个区间单调的队列或者是栈,单调队列就是我们所说的大顶堆小顶堆, //升序队列 小顶堆 great 小到大 priority_queue <int,vector<int>,greater<int> > pri_que; //降序队列 大顶堆 less 大到小 默认 priority_qu…

【AI视野·今日NLP 自然语言处理论文速览 第八十一期】Mon, 4 Mar 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 4 Mar 2024 Totally 48 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Mitigating Reversal Curse via Semantic-aware Permutation Training Authors Qingyan Guo, Rui Wang, Junlia…

Fisher矩阵与自然梯度法

文章目录 Fisher矩阵及自然梯度法Fisher矩阵自然梯度法总结参考链接 Fisher矩阵及自然梯度法 自然梯度法相比传统的梯度下降法具有以下优势&#xff1a; 更好的适应性&#xff1a;自然梯度法通过引入黎曼流形上的梯度概念&#xff0c;能够更好地适应参数空间的几何结构。这使…

LCR 134. Pow(x, n)

解题思路&#xff1a; 分治 快速幂 Java中向下取整n/2即可 需要结合下图理解&#xff0c;算法就是实现的该过程 class Solution {public double myPow(double x, int n) {if(x 0.0f) return 0.0d;long b n;double res 1.0;//例如:2^-5(1/2)^5if(b < 0) {x 1 / x;b -b…

【Python】Python教师/学生信息管理系统 [简易版] (源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

京东商品优惠券API获取商品到手价

item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,i…

MATLAB环境下基于区域椭圆拟合的细胞分割方法

使用图像分割技术可以找到图像中的目标区域&#xff0c;目标区域可以定义为具有特定值的单个区域&#xff0c;也可以定义为具有相同值的多个区域。目前图像分割已经融入到生活中的方方面面&#xff0c;在遥感领域&#xff0c;它应用于航拍图中的地形、地貌的分割&#xff1b;在…

智慧城市的创新实践:全球案例分享

一、引言 在全球化和数字化的时代&#xff0c;智慧城市已经成为城市发展的前沿趋势。智慧城市运用先进的信息技术&#xff0c;如大数据、物联网、云计算和人工智能等&#xff0c;提升城市管理的智能化水平&#xff0c;增强公共服务效率&#xff0c;优化居民生活质量。本文将通…

第四十九回 吴学究双掌连环计 宋公明三打祝家庄-Python与HTTP服务交互

吴用请戴宗从梁山请来铁面孔目裴宣、圣手书生萧让、通臂猿侯健、玉臂匠金大坚来帮忙。又告诫扈家庄的扈成&#xff0c;打起来不要去帮祝家庄。 孙立把旗号改成“登州兵马提辖孙立”&#xff0c;来祝家庄找峦廷玉&#xff0c;被热情接待。 第三天&#xff0c;宋江派小李广花荣…

Qt+FFmpeg+opengl从零制作视频播放器-1.项目介绍

1.简介 学习音视频开发&#xff0c;首先从做一款播放器开始是比较合理的&#xff0c;每一章节&#xff0c;我都会将源码贴在最后&#xff0c;此专栏你将学习到以下内容&#xff1a; 1&#xff09;音视频的解封装、解码&#xff1b; 2&#xff09;Qtopengl如何渲染视频&#…

Docker实战——容器

目录 Docker 容器的基本概念与操作1.使用“docker create”创建容器。这里基于Nginx的镜像创建了一个容器&#xff0c;名字为mycontainer。2.使用“docker ps -a”命令查看所有的容器&#xff0c;这时的容器不一定是运行状态。3.使用 “docker start” 命令可以启动容器。4.使用…