分布式数据库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从入门到实战
大家可以点赞、收藏、关注、评论我啦 、有数据库相关的问题随时联系我或交流哟~!

相关推荐
做前端的娜娜子3 天前
文档加载工程:多格式数据接入与 Document 标准化
langchain·ai编程·掘金·金石计划
做前端的娜娜子4 天前
Embedding 向量模型:从语义表示到相似度计算
langchain·openai·掘金·金石计划
做前端的娜娜子4 天前
第二个 AI 调用——invoke 阻塞式与 stream 流式生成
人工智能·llm·掘金·金石计划
做前端的娜娜子5 天前
第一个AI调用——TypeScript 工程初始化与配置管理(实战跟练)
langchain·openai·掘金·金石计划
做前端的娜娜子6 天前
什么是浅拷贝(Shallow Copy)和深拷贝(Deep Copy)?如何手动实现一个深拷贝函数
javascript·面试·掘金·金石计划
做前端的娜娜子8 天前
JavaScript 闭包
前端·javascript·掘金·金石计划
做前端的娜娜子9 天前
移动端上拉加载与下拉刷新实现方案
前端·面试·掘金·金石计划
做前端的娜娜子13 天前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
做前端的娜娜子17 天前
如何实现网页加载进度条?
性能优化·掘金·金石计划
做前端的娜娜子18 天前
大文件上传
掘金·金石计划