龙蜥操作系统安装doris集群(arrch64架构)
Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求:
-
Linux 操作系统版本需求
Linux系统 版本 Centos 7.1及以上 Ubuntu 16.04及以上 -
软件需求
软件 版本 Java 1.8及以上 GCC 7.3及以上 -
l网络需求
Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口
-
资源规划
node1 node2 node3 FE(Leader) FE(Follower) FE(Follower) BE BE BE BROKER BROKER BROKER 注意:
因测试环境资源有限,FE和BE节点部署在相同服务器,生产环境建议分开
环境准备
-
修改三台主机名称为 node1、node2、node3
vim /etc/hostname node1 # 按esc 输入:eq 保存退出
-
配置三台主机hosts
node1
vim /etc/hosts # Loopback entries; do not change. # For historical reasons, localhost precedes localhost.localdomain: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 node1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 node1 # See hosts(5) for proper format and other examples: # 192.168.1.10 foo.mydomain.org foo # 192.168.1.13 bar.mydomain.org bar 10.211.55.13 node1 10.211.55.14 node2 10.211.55.15 node3 # 按esc 输入:eq 保存退出
node2
vim /etc/hosts # Loopback entries; do not change. # For historical reasons, localhost precedes localhost.localdomain: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 node3 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 node3 # See hosts(5) for proper format and other examples: # 192.168.1.10 foo.mydomain.org foo # 192.168.1.13 bar.mydomain.org bar 10.211.55.13 node1 10.211.55.14 node2 10.211.55.15 node3 # 按esc 输入:eq 保存退出
node3
vim /etc/hosts # Loopback entries; do not change. # For historical reasons, localhost precedes localhost.localdomain: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 node3 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 node3 # See hosts(5) for proper format and other examples: # 192.168.1.10 foo.mydomain.org foo # 192.168.1.13 bar.mydomain.org bar 10.211.55.13 node1 10.211.55.14 node2 10.211.55.15 node3 # 按esc 输入:eq 保存退出
使用ping命令测试配置的hosts是否网络畅通,以node1主机ping node2为例
ping node2
-
安装并配置jdk
-
首先下载jdk,最好是jdk1.8及以上的版本,下载之前需要确定系统的架构
uname -a #查看系统架构 Linux node1 5.10.134-14.1.an23.aarch64 #1 SMP Thu May 25 19:50:35 CST 2023 aarch64 GNU/Linux
jdk下载链接如下:https://www.oracle.com/java/technologies/downloads/?er=221886#java8
官网提供的下载速度较慢并且还需要登录,推荐使用国内链接
华为提供的下载服务:Index of /mirrors_toolkit/java/jdk/
-
在服务器创建目录将下载的jdk安装包上传到创建的目录下
mkdir -p /data/software/jdk
-
解压jdk并重新命名
tar -xvf jdk-8u401-fcs-bin-b10-linux-aarch64-19_dec_2023.tar mv jdk1.8.0_401-bin jdk1.8.0_401
-
配置JAVA_HOME
vim /etc/profile # JAVA_HOME export JAVA_HOME=/data/software/jdk/jdk1.8.0_401 export PATH=$JAVA_HOME/bin:$PATH # 按esc 输入:eq 保存退出
-
是配置生效
source /etc/profile java -version #查看配置是否生效 java version "1.8.0_401" Java(TM) SE Runtime Environment (build 1.8.0_401-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode) echo $JAVA_HOME #查看JAVA_HOME的配置目录 /data/software/jdk/jdk1.8.0_401 #以上的命令都能正确输出说明JAVA_HOIME配置成功
-
doris安装
-
下载doris安装包
doris的下载地址:https://doris.apache.org/zh-CN/download
-
在服务器创建目录将下载的doris安装包上传到创建的目录下
mkdir -p /data/software/doris
-
解压上传的doris安装包,并重新命名
tar -xvf apache-doris-2.1.3-bin-arm64.tar mv apache-doris-2.1.3-bin doris2.1.3 #重命名时建议保留版本号,后续升级的时候比较直观的看到版本号
-
配置fe
-
进入doris2.1.3/fe目录下,创建fe的元数据存储目录
cd /data/software/doris/doris2.1.3/fe mkdir doris-meta
-
进入fe的conf目录下配置fe.conf,总共需要修改三个地方,添加JAVA_HOME,配置meta_dir,修改绑定ip: priority_networks
cd /data/software/doris/doris2.1.3/fe/conf vim fe.conf JAVA_HOME=/data/software/jdk/jdk1.8.0_401 meta_dir = /data/software/doris/doris-2.1.3/fe/doris-mate priority_networks = 10.211.55.13/24 # 按esc 输入:eq 保存退出
-
-
配置be
-
进入doris2.1.3/be目录下,并创建be的数据存储目录,建议将be的存储目录创建在磁盘容量最大的盘符,并且不与fe的存储目录创建在同一个磁盘
df -h #查看磁盘 件系统 大小 已用 可用 已用% 挂载点 devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 786M 1.1M 785M 1% /run /dev/mapper/ao_anolis-root 41G 17G 25G 41% / tmpfs 2.0G 176K 2.0G 1% /tmp /dev/sda2 1014M 165M 850M 17% /boot /dev/mapper/ao_anolis-home 20G 253M 20G 2% /home /dev/sda1 599M 6.4M 593M 2% /boot/efi tmpfs 393M 36K 393M 1% /run/user/42 tmpfs 393M 20K 393M 1% /run/user/0 mkdir -p /home/disk1/doris cd /data/software/doris/doris2.1.3/be
-
进入be的conf目录下配置be.conf,总共需要修改三个地方,添加JAVA_HOME,配置storage_root_path,修改绑定ip: priority_networks
cd /data/software/doris/doris2.1.3/be/conf vim be.conf JAVA_HOME=/data/software/jdk/jdk1.8.0_401 storage_root_path = /home/disk1/doris priority_networks = 10.211.55.13/24 # 按esc 输入:eq 保存退出
-
-
配置doris的环境变量
vim /etc/profile #DORIS_HOME export DORIS_HOME=/data/software/doris/doris-2.1.3 export PATH=:$DORIS_HOME/bin:$PATH # 按esc 输入:eq 保存退出 source /etc/profile #使配置生效
-
分别在node2,node3创建data目录并分发jdk,doris的安装目录到node2,node3的data目录
mkdir /data scp -r /data/software/ root@node2:/data scp -r /data/software/ root@node3:/data scp /etc/profile root@node2:/etc/profile scp /etc/profile root@node3:/etc/profile # 分别到node2,node3执行以下命令 source /etc/profile
-
分别修改node2,node3的doris的fe.conf和be.conf的priority_networks,并在node2,node3创建fe,be的存储目录,下面以node2为例,node3与此类似
mkdir -p /home/disk1/doris cd /data/software/doris/doris2.1.3/fe/conf vim fe.conf JAVA_HOME=/data/software/jdk/jdk1.8.0_401 meta_dir = /data/software/doris/doris-2.1.3/fe/doris-mate priority_networks = 10.211.55.14/24 # 按esc 输入:eq 保存退出 cd /data/software/doris/doris2.1.3/be/conf vim be.conf JAVA_HOME=/data/software/jdk/jdk1.8.0_401 storage_root_path = /home/disk1/doris priority_networks = 10.211.55.13/24 # 按esc 输入:eq 保存退出
启动doris
-
在node1中需要先做一些设置保证be能够正常启动
-
修改可打开的文件数
ulimit -n 65535
-
禁用分区
swapoff -a
注意:以上的设置都是临时的,当当前的会话关闭后将失效
-
-
启动node1的fe
sh data/software/doris/doris2.1.3/fe/bin/start_fe.sh --daemon # 日志默认存放在 fe/log/ 目录下 jps # 查看fe是否启动 3616 DorisFE 99476 Jps
-
使用mysql连接,mysql安装可以到网上搜教程,或者查看我的这篇文章https://blog.csdn.net/qq123po/article/details/139665393?spm=1001.2014.3001.5502
mysql -uroot -P9303 -h127.0.0.1 # 登陆后,可以通过以下命令修改 root 密码 SET PASSWORD FOR 'root' = PASSWORD('123456');
-
添加be节点
# 登录后添加BE节点port为be上的heartbeat_service_port端口,默认9050 ALTER SYSTEM ADD BACKEND "node1:9050"; ALTER SYSTEM ADD BACKEND "node2:9050"; ALTER SYSTEM ADD BACKEND "node3:9050";
-
添加fe节点
FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。
第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。
添加 Follower 或 Observer。使用 mysql-client 连接到已启动的 FE,并执行:
ALTER SYSTEM ADD FOLLOWER "node2:9010"; ALTER SYSTEM ADD OBSERVER "node3:9010";
-
-
启动node1的be
sh data/software/doris/doris2.1.3/be/bin/start_be.sh --daemon # 日志默认存放在 fe/log/ 目录下 jps # 查看fe是否启动 3616 DorisFE 99476 Jps 9959 DorisBE
-
启动node2,node3的fe
-
启动fe节点
第一次启动时,需执行以下命令:
./bin/start_fe.sh --helper host:port --daemon
其中 host 为 Leader 所在节点 ip, port 为 Leader 的配置文件 fe.conf 中的 edit_log_port。–helper 参数仅在 follower 和 observer 第一次启动时才需要。
查看 Follower 或 Observer 运行状态。使用 mysql-client 连接到任一已启动的 FE,并执行:SHOW PROC ‘/frontends’; 可以查看当前已加入集群的 FE 及其对应角色。
FE 扩容注意事项:
Ø Follower FE(包括 Leader)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可
Ø 当 FE 处于高可用部署时(1个 Leader,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的
Ø 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常 3 个即可满足绝大部分需求
helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE
删除fe节点
使用以下命令删除对应的 FE 节点:
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
FE 缩容注意事项:
删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数
启动node2节点(指定leader节点的位置)
sh data/software/doris/doris2.1.3/fe/bin/start_fe.sh --helper node1:9010 --daemon
启动node3节点(指定leader节点的位置)
sh /export/server/apache-doris-0.13.0/fe/bin/start_fe.sh --helper node1:9010 --daemon
查看fe节点列表
SHOW PROC '/frontends'
-
BE 扩容和缩容
BE 节点的扩容和缩容过程,不影响当前系统运行以及正在执行的任务,并且不会影响当前系统的性能。数据均衡会自动进行。根据集群现有数据量的大小,集群会在几个小时到1天不等的时间内,恢复到负载均衡的状态。集群负载情况,可以参见 Tablet 负载均衡文档。
增加 BE 节点
BE 节点的增加方式同 BE 部署 一节中的方式,通过 ALTER SYSTEM ADD BACKEND 命令增加 BE 节点。
BE 扩容注意事项:
BE 扩容后,Doris 会自动根据负载情况,进行数据均衡,期间不影响使用
删除 BE 节点
删除 BE 节点有两种方式:DROP 和 DECOMMISSION
DROP 语句如下:
ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
注意事项:
DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。
DECOMMISSION 语句如下:
ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
DECOMMISSION 命令说明:
- 该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。Ø 该命令是一个异步操作。执行后,可以通过 SHOW PROC ‘/backends’; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。Ø 该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 isDecommission 为 true 的状态。
- DECOMMISSION 的进度,可以通过 SHOW PROC ‘/backends’; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。Ø 该操作可以通过: CANCEL DECOMMISSION BACKEND “be_host:be_heartbeat_service_port”; 命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡
Broker 实例的数量没有硬性要求。通常每台物理机部署一个即可。Broker 的添加和删除可以通过以下命令完成:
ALTER SYSTEM ADD BROKER broker_name "broker_host:broker_ipc_port"; ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port"; ALTER SYSTEM DROP ALL BROKER broker_name;
Broker 是无状态的进程,可以随意启停。当然,停止后,正在其上运行的作业会失败,重试即可。
-
到此,doris集群安装完成,感谢您的阅读,希望这篇文章可以对您有稍微的帮助。