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