分布式数据库Apache Doris HA集群部署

bash 复制代码
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
擅长主流数据Oracle、MySQL、PG、openGauss运维
备份恢复,安装迁移,性能优化、故障应急处理等

可提供技术业务:
1.DB故障处理/疑难杂症远程支援
2.Mysql/PG/Oracle/openGauss
数据库部署及数仓搭建

@TOC

前言

Apache Doris实在火的不得了,基于开源的这个分布式数据库HA集群,我们开启体验之旅。


📣 1.部署环境

✨ 1.1 架构规划

Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,按照以下架构。 Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。 Backend(BE),主要负责数据存储、查询计划的执行

✨ 1.2 集群规划

✨ 1.3 网络需求

Doris 各个实例直接通过网络进行通讯,以下表格展示了所有需要的端口 注意: 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。 部署前请确保各个端口在应有方向上的访问权限。

📣 2.前期准备

✨ 2.1 系统文件限制

修改 /etc/security/limits.conf, 执行命令:

echo "* soft nofile 204800" >> /etc/security/limits.conf

echo "* hard nofile 204800" >> /etc/security/limits.conf

echo "* soft nproc 204800" >> /etc/security/limits.conf

echo "* hard nproc 204800 " >> /etc/security/limits.conf

✨ 2.2 关闭交换内存

[root@centos79 ~]# swapoff -a

[root@centos79 ~]# cat /etc/fstab

注释加载swap分区的那行记录

[root@centos79 ~]# free -h

total used free shared buff/cache available

Mem: 3.7G 1.1G 1.5G 81M 1.1G 2.3G Swap: 0B 0B 0B

✨ 2.3 内核修改

修改 /etc/sysctl.conf, 执行命令:

echo fs.file-max = 6553560 >> /etc/sysctl.conf

echo vm.max_map_count=2000000 >> /etc/sysctl.conf

sysctl -p

✨ 2.4 时间同步

bash 复制代码
[root@frontend01 /]# yum install -y ntp
[root@frontend01 /]# systemctl start ntpd
[root@frontend01 /]# systemctl enable ntpd

[root@frontend01 /]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 makaki.miuku.ne .INIT.          16 u    -   64    0    0.000    0.000   0.000
 119.28.206.193  .INIT.          16 u    -   64    0    0.000    0.000   0.000
 110.42.98.138   .INIT.          16 u    -   64    0    0.000    0.000   0.000
 a.chl.la        .INIT.          16 u    -   64    0    0.000    0.000   0.000

✨ 2.5 java环境

bash 复制代码
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序
docker cp /opt/jdk-8u391-linux-x64.tar.gz frontend01:/opt

1.下载Linux环境下的jdk1.8
https://www.oracle.com/java/technologies/downloads/#java8

2.JDK压缩包解压
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /usr/local

3.环境变量导入
vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_391
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

##环境变量生效
source /etc/profile

##确认安装是否成功
java -version

[root@frontend01 ~]# java -version
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

✨ 2.6 防火墙关闭

systemctl stop firewalld

systemctl disalbe firewalld

[root@centos79 ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead)

Docs: man:firewalld(1)

✨ 2.7 host配置

vi /etc/hosts \

172.18.12.20 frontend01

172.18.12.21 frontend02

172.18.12.22 frontend03

172.18.12.23 frontend04

172.18.12.24 backend01

172.18.12.25 backend02

172.18.12.26 backend03

172.18.12.27 backend04

📣 3.配置Doris集群

✨ 3.1 配置FE

bash 复制代码
进入到 apache-doris 解压后的fe进行配置

mkdir -p /doris/soft/
tar xf /opt/apache-doris-2.0.2-bin-x64.tar.gz -C /doris/soft/

#创建 fe 元数据存储的目录
mkdir -p /doris/doris-meta


#配置FE
echo "meta_dir=/doris/doris-meta" >> /doris/soft/apache-doris-2.0.2-bin-x64/fe/conf/fe.conf
echo "priority_networks=172.18.12.20/24" >> /doris/soft/apache-doris-2.0.2-bin-x64/fe/conf/fe.conf

# 配置环境变量
vi /etc/profile
#添加如下内容
export DORIS_HOME=/doris/soft/apache-doris-2.0.2-bin-x64
export PATH=$PATH:$DORIS_HOME/fe/bin

source /etc/profile

#启动fe
start_fe.sh --daemon

#关闭fe
stop_fe.sh

✨ 3.2 OBSERVER配置

bash 复制代码
#配置FE OBSERVER从节点

mkdir -p /doris/soft/
tar xf /opt/apache-doris-2.0.2-bin-x64.tar.gz -C /doris/soft/

echo "meta_dir=/doris/doris-meta" >> /doris/soft/apache-doris-2.0.2-bin-x64/fe/conf/fe.conf
echo "priority_networks=172.18.12.23/24" >> /doris/soft/apache-doris-2.0.2-bin-x64/fe/conf/fe.conf

# 配置环境变量
vi /etc/profile
#添加如下内容
export DORIS_HOME=/doris/soft/apache-doris-2.0.2-bin-x64
export PATH=$PATH:$DORIS_HOME/fe/bin

source /etc/profile

#启动fe
bash start_fe.sh --helper 172.18.12.20:9010 --daemon

✨ 3.3 配置BE

bash 复制代码
在所有BE节点上配置
进入到 apache-doris 解压后的be进行配置

mkdir -p /doris/soft/
tar xf /opt/apache-doris-2.0.2-bin-x64.tar.gz -C /doris/soft/

#创建be存储数据的目录
mkdir -p /doris/doris-storage


#配置BE

echo "storage_root_path=/doris/doris-storage" >> /doris/soft/apache-doris-2.0.2-bin-x64/be/conf/be.conf
echo "priority_networks=172.18.12.24/24" >> /doris/soft/apache-doris-2.0.2-bin-x64/be/conf/be.conf

# 配置环境变量
vi /etc/profile
#添加如下内容
export DORIS_HOME=/doris/soft/apache-doris-2.0.2-bin-x64
export PATH=$PATH:$DORIS_HOME/be/bin

source /etc/profile

#启动be
start_be.sh --daemon

📣 4.加入BE和OBSERVER

登录frontend01主节点leader

数据库添加新节点OBSERVER

[root@centos79 ~]# docker exec -it frontend01 bash

[root@frontend01 ~]# mysql -uroot -P9030 -h127.0.0.1

MySQL [(none)]> alter system add observer "172.18.12.23:9010";

MySQL [(none)]> SHOW observer;

登录frontend01主节点leader

数据库添加新节点BACKENDS

mysql -h127.0.0.1 -P9030 -uroot -pAa123456

MySQL [(none)]> alter system add BACKEND "172.18.12.24:9050";

MySQL [(none)]> SHOW BACKENDS;

markdown 复制代码
                                                           >相关推荐阅读:\

90天精通Oracle-实战系列
Oracle高可用实战系列
MySQL从入门到实战
如何成为SQL高手
PostgreSQL从入门到实战
大家可以点赞、收藏、关注、评论我啦 、有数据库相关的问题随时联系我或交流哟~!

相关推荐
中杯可乐多加冰25 天前
【AI落地应用实战】Amazon Bedrock Converse API + Amazon Titan构建一个RAG应用(Retrieval-Augmente
人工智能·掘金·金石计划
边中之城1 个月前
如何从0到1开发自己的npm包
掘金·金石计划
中杯可乐多加冰1 个月前
Text to image论文精读PDF-GAN:文本生成图像新度量指标SSD Semantic Similarity Distance
人工智能·掘金·金石计划
Sword991 个月前
Rust 所有权理解与运用
前端·rust·掘金·金石计划
冯志浩1 个月前
Harmony Next - 图形绘制
harmonyos·掘金·金石计划
中杯可乐多加冰2 个月前
【AI落地应用实战】HivisionIDPhotos AI证件照制作实践指南
人工智能·掘金·金石计划
冯志浩2 个月前
Harmony Next - 多线程技术 TaskPool
harmonyos·掘金·金石计划
宇宙之一粟2 个月前
设计快速并发哈希表
后端·rust·掘金·金石计划
宇宙之一粟2 个月前
【译】Go 迭代器的乐趣
后端·go·掘金·金石计划
雨绸缪2 个月前
ABAP 的 “小技巧 ”和 “陷阱 ”以及新语法
后端·代码规范·掘金·金石计划