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以上的版本,所有需要安装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)
二、关闭系统防火墙
如果发现端口不同,可以试着关闭防火墙,确认是否是本机防火墙造成。如果是防火墙造成,可以根据配置的 Doris 各组件端口打开相应的端口通信。
systemctl stop firewalld.service
systemctl disable firewalld.service
三、安装ntpd
因为使用了阿里云ECS云服务器,所有没有必要安装ntpd。
Doris 的元数据要求时间精度要小于 5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
通常情况下,可以通过配置 NTP 服务保证各节点时钟同步。
systemctl start ntpd.service
systemctl enable ntpd.service
四、关闭 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
#fdisk /dev/vdb
#fdisk -l
#mkfs.xfs /dev/vdb1
#ls /dev/disk/by-uuid/ -l
#cat /etc/fstab
#vim /etc/fstab
#mount -a
#df -h
十、安装FE(1台机器)
因为doris需要使用mysql客户端访问。我们先安装客户端。
rpm -qa |grep mysql
yum list |grep mysql
yum install mysql
安装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
配置fe的配置文件
vim conf/fe.conf
主要设置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
mysql连接到FE
mysql -uroot -P9030 -h172.25.93.153
show databases;
show frontends\G
集群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>"
注意
- FE Follower(包括 Master)节点的数量建议为奇数,建议部署 3 个组成高可用模式。
- 当 FE 处于高可用部署时(1 个 Master,2 个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力
- 通常一个 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
配置be的配置文件
vim conf/be.conf
- 配置java_home;
- 配置priority_networks = 172.25.93.0/24;
- 配置storage_root_path = /opt/doris-data
启动BE
启动BE实例前,需要通过FE中去注册到BACKEDNS。
查看BACKENDS
show backends \G
show backends;
启动BE1, BE2, BE3
BE目录下启动(/root/apache-doris-3.0.1-bin-x64/be)
bin/start_be.sh --daemon
再次查看BACKENDS
show backends \G
show backends;
十二、修改对应账号密码(可忽略)
## 确认当前用户为 root,在 MySQL Client 中查看当前用户
select user();
+------------------------+
| user() |
+------------------------+
| 'root'@'172.25.93.153' |
+------------------------+
1 row in set (0.04 sec)
## 修改 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/