apache-doris-3.0.1-bin-x64.tar.gz,jdk-17_linux-x64_bin.tar.gz(jdk-17.0.12)。

准备4台服务器,1台FE,3台BE。

采用阿里云的ECS云服务器。RockyLinx9.4服务器系统。

IP

安装doris类别

172.25.93.153

FE

172.25.93.154

BE(be1)

172.25.93.155

BE(be2)

172.25.93.156

BE(be3)

oris默认的端口规划

Doris3.0.1安装_apache

Doris3.0.1安装_mysql_02

因为安装的是doris3.0以上的版本,所有需要安装jdk-17.0.10以上,这里使用jdk-17.0.12。

Doris 的所有进程都依赖 Java。

在 2.1(含)版本之前,请使用 Java 8,推荐版本:openjdk-8u352-b08-linux-x64

从 3.0(含)版本之后,请使用 Java 17,推荐版本:jdk-17.0.10_linux-x64_bin.tar.gz

同时还需要avx2指令支持。

cat /proc/cpuinfo | grep avx2


安装epel-release源

yum install epel-release -y
yum install lrzsz -y


一、安装jdk-17.0.12

jdk-17_linux-x64_bin.tar.gz

tar -xvzf jdk-17_linux-x64_bin.tar.gz
mv jdk-17.0.12/ /usr/local/

vim /etc/profile

JAVA_HOME=/usr/local/jdk-17.0.12
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export JAVA_HOME
export PATH
export CLASSPATH

source /etc/profile

java -version

# java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)

Doris3.0.1安装_java_03


二、关闭系统防火墙

如果发现端口不同,可以试着关闭防火墙,确认是否是本机防火墙造成。如果是防火墙造成,可以根据配置的 Doris 各组件端口打开相应的端口通信。

systemctl stop firewalld.service
systemctl disable firewalld.service


三、安装ntpd

因为使用了阿里云ECS云服务器,所有没有必要安装ntpd。

Doris 的元数据要求时间精度要小于 5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。

通常情况下,可以通过配置 NTP 服务保证各节点时钟同步。

systemctl start ntpd.service
systemctl enable ntpd.service

Chrony 也可以。


四、关闭 swap 分区

在部署 Doris 时,建议关闭 swap 分区。swap 分区是内核发现内存紧张时,会按照自己的策略将部分内存数据移动到配置的 swap 分区,由于内核策略不能充分了解应用的行为,会对数据库性能造成较大影响。所以建议关闭。

通过以下命令可以临时或者永久关闭。

临时关闭,下次机器启动时,swap 还会被打开。

swapoff -a

永久关闭,使用 Linux root 账户,注释掉 /etc/fstab 中的 swap 分区,然后重启即可彻底关闭 swap 分区。

# /etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>
tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0
/dev/sda1              /             ext4      defaults,noatime      0      1
# /dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2


五、设置系统最大打开文件句柄数

Doris 由于依赖大量文件来管理表数据,所以需要将系统对程序打开文件数的限制调高。

vi /etc/security/limits.conf 
* soft nofile 1000000
* hard nofile 1000000


六、修改虚拟内存区域数量为

修改虚拟内存区域至少 2000000

sysctl -w vm.max_map_count=2000000


七、关闭透明大页

在部署 Doris 时,建议关闭透明大页。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag


八、磁盘扩容(正常情况忽略)

#fdisk -l

Doris3.0.1安装_mysql_04

#fdisk /dev/vdb

Doris3.0.1安装_apache_05

Doris3.0.1安装_apache_06

#fdisk -l

Doris3.0.1安装_java_07

#mkfs.xfs /dev/vdb1

Doris3.0.1安装_java_08

#ls /dev/disk/by-uuid/ -l

Doris3.0.1安装_apache_09


#cat /etc/fstab

Doris3.0.1安装_apache_10

#vim /etc/fstab

Doris3.0.1安装_apache_11

#mount -a 
#df -h

Doris3.0.1安装_mysql_12


十、安装FE(1台机器)

因为doris需要使用mysql客户端访问。我们先安装客户端。

rpm -qa |grep mysql
yum list |grep mysql
yum install mysql

Doris3.0.1安装_java_13

Doris3.0.1安装_apache_14

安装FE

wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.1-bin-x64.tar.gz
tar -xvzf apache-doris-3.0.1-bin-x64.tar.gz
cd apache-doris-3.0.1-bin-x64/
cd fe

Doris3.0.1安装_java_15

配置fe的配置文件

vim conf/fe.conf

Doris3.0.1安装_java_16

主要设置java_home,这个可以忽略。因为前面已经在系统设置了java_home。这里添加也可以。

还有一个设置是priority_networks = 172.25.93.0/24 。

启动FE

FE目录下启动(/root/apache-doris-3.0.1-bin-x64/fe)

bin/start_fe.sh --daemon

Doris3.0.1安装_mysql_17

mysql连接到FE

mysql -uroot -P9030 -h172.25.93.153
show databases;
show frontends\G

Doris3.0.1安装_mysql_18

集群FE,FE其他节点加入

在生产集群中,建议至少部署 3 个 Follower 节点。在部署过 FE Master 节点后,需要再部署两个 FE Follower 节点。

创建元数据目录

参考部署 FE Master 节点,创建 doris-meta 目录

修改 FE Follower 节点配置文件

参考部署 FE Master 节点,修改 FE 配置文件。通常情况下,可以直接复制 FE Master 节点的配置文件。

在 Doris 集群中注册新的 FE Follower 节点

在启动新的 FE 节点前,需要先在 FE 集群中注册新的 FE 节点。

## 链接任一存活的 FE 节点
mysql -uroot -P<fe_query_port> -h<fe_ip_address>

## 注册 FE Follower 节点
## fe_edit_log_port 可以从 fe.conf 中查看,默认为 9010
## 在 MySQL Client 中执行 ALTER SYSTEM 语句
ALTER SYSTEM ADD FOLLOWER "<fe_ip_address>:<fe_edit_log_port>"

如果要添加 observer 节点,可以使用 ADD OBSERVER 命令

## 注册 FE observer 节点,在 MySQL Client 中执行 ALTER SYSTEM 语句
ALTER SYSTEM ADD OBSERVER "<fe_ip_address>:<fe_edit_log_port>"

注意

  1. FE Follower(包括 Master)节点的数量建议为奇数,建议部署 3 个组成高可用模式。
  2. 当 FE 处于高可用部署时(1 个 Master,2 个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力
  3. 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下

启动 FE Follower 节点

通过以下命令,可以启动 FE Follower 节点,并自动同步元数据。

bin/start_fe.sh --helper <helper_fe_ip>:<fe_edit_log_port> --daemon

其中,helper_fe_ip 为当前 FE 集群中任一存活的节点。--heper 参数只应用于第一次启动 FE 时同步元数据,后续重启 FE 的操作不需要指定。

判断 follower 节点状态

与判断 FE master 节点状态的方式相同,添加注册 FE follower 节点后需要通过 show frontends 命令查看 FE 节点状态。与 Master 状态不同,IsMaster 的状态应为 false。


十一、安装BE(3台机器)

安装BE

wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-3.0.1-bin-x64.tar.gz
tar -xvzf apache-doris-3.0.1-bin-x64.tar.gz
cd apache-doris-3.0.1-bin-x64/
cd fe

Doris3.0.1安装_java_19

配置be的配置文件

vim conf/be.conf

Doris3.0.1安装_apache_20

  1. 配置java_home;
  2. 配置priority_networks = 172.25.93.0/24;
  3. 配置storage_root_path = /opt/doris-data

启动BE

启动BE实例前,需要通过FE中去注册到BACKEDNS。

Doris3.0.1安装_java_21

查看BACKENDS

show backends \G
show backends;

Doris3.0.1安装_java_22

启动BE1, BE2, BE3

BE目录下启动(/root/apache-doris-3.0.1-bin-x64/be)

bin/start_be.sh --daemon

Doris3.0.1安装_mysql_23

再次查看BACKENDS

show backends \G
show backends;

Doris3.0.1安装_java_24


十二、修改对应账号密码(可忽略)

## 确认当前用户为 root,在 MySQL Client 中查看当前用户

select user();
+------------------------+
| user()                 |
+------------------------+
| 'root'@'172.25.93.153' |
+------------------------+
1 row in set (0.04 sec)

Doris3.0.1安装_mysql_25

## 修改 root 用户密码,在 MySQL Client 中执行 set password 命令

SET PASSWORD = PASSWORD('doris_new_passwd');


SET PASSWORD FOR 'root' = PASSWORD('your_password') `类似语句来修改 root 的密码

SET PASSWORD FOR 'admin' = PASSWORD('your_password') `类似语句来修改 admin 的密码


十三、启动doris的WEBUI。

访问: http://172.25.93.153:8030/

Doris3.0.1安装_java_26

Doris3.0.1安装_mysql_27


Doris3.0.1安装_apache_28

Doris3.0.1安装_mysql_29

Doris3.0.1安装_java_30