一、安装包下载
官方下载链接地址:Release 3.0.2 - Apache Doris
-
GitHub 下载:Releases · apache/doris · GitHub(推荐用这个)
-
-
官网下载:Apache Doris - Download | Easily deploy Doris anywhere - Apache Doris(加载半天太慢了)
二、环境准备
(命令是在root用户下执行,如果不是root用户请在命令前面加上sudo)
1、系统要求
配置要求
-
centos7.0及以上
-
推荐配置:4核CPU / 8GB内存 / 100GB硬盘(我用了这个配置FB启动没成功,后来改成8核16g就没问题)
-
确保已安装
wget
,tar
,java,mysql
等基础工具
安装java
Doris 的所有进程都依赖 Java。
在 2.1(含)版本之前,请使用 Java 8,推荐版本:openjdk-8u352-b08-linux-x64
。
从 3.0(含)版本之后,请使用 Java 17,推荐版本:jdk-17.0.10_linux-x64_bin.tar.gz
。
- 在线下载java17
yum -y install wget
#下载java
wget https://download.oracle.com/java/17/archive/jdk-17.0.10_linux-x64_bin.tar.gz
- 解压jdk
tar -xzf jdk-17.0.10_linux-x64_bin.tar.gz
#移动到合适的位置
mv jdk-17.0.10 /data/java
- 设置JAVA_HOME环境变量
vi /etc/profile
添加
export JAVA_HOME=/data/java/jdk-17.0.10
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 更新profile文件使命令生效
source /etc/profile
- 验证安装是否成功
java -version
安装MySQL
参考文档:【MySQL】在CentOS7环境下----手把手教你安装MySQL详细教程(附带图例详解!!)_centos7 mysql-CSDN博客
2、系统检查
关闭 swap 分区
在部署 Doris 时,建议关闭 swap 分区。swap 分区是内核发现内存紧张时,会按照自己的策略将部分内存数据移动到配置的 swap 分区,由于内核策略不能充分了解应用的行为,会对数据库性能造成较大影响。所以建议关闭。
通过以下命令可以临时或者永久关闭。
临时关闭,下次机器启动时,swap 还会被打开。
swapoff -a
永久关闭,使用 Linux root 账户,注释掉 /etc/fstab 中的 swap 分区,然后重启即可彻底关闭 swap 分区。
sed -i '/swap/s/^/#/' /etc/fstab
# /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
警告:不建议使用设置 vm.swappiness = 0 的方式,因为这个参数在不同的 Linux 内核版本会有不同的语义,很多情况下不能完全关闭 swap。
检测和关闭系统防火墙
如果发现端口不通,可以试着关闭防火墙,确认是否是本机防火墙造成。如果是防火墙造成,可以根据配置的 Doris 各组件端口打开相应的端口通信。
#关闭防火墙
systemctl stop firewalld.service
#开机关闭防火墙
systemctl disable firewalld.service
#重启网络
systemctl restart network.service
#查看防火墙状态
systemctl status firewalld.service
配置 NTP 服务
Doris 的元数据要求时间精度要小于 5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
通常情况下,可以通过配置 NTP 服务保证各节点时钟同步。
#如果没有安装ntp 则 yum -y install ntp
systemctl start ntpd.service
systemctl enable ntpd.service
设置系统最大打开文件句柄数
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
执行生效
sysctl -p
三、部署doris
1、解压安装包
用xshell把下载下来的安装包放到/data/doris(自己创建的目录下)
cd /data/doris
tar -xzf apache-doris-3.0.2-bin-x64.tar.gz
2、部署FE
修改FE配置文件
vi /data/doris/apache-doris-3.0.2-bin-x64/fe/conf/fe.conf
增加内容如下:
#java_home java的路径
JAVA_HOME=/opt/java/jdk-17.0.10
#网段按照实际情况,如服务器的IP是192.168.3.36,那么网关就是192.168.3.0
priority_networks = 192.168.3.0/24
#元数据存储目录(自己创建 mkdir/data/doris/doris-meta)
meta_dir = /data/doris/doris-meta
启动FE
加上--daemon 后台启动
/data/doris/apache-doris-3.0.2-bin-x64/fe/bin/start_fe.sh --daemon
############备注:首次启动可先在当前目录下启动
cd /data/doris/apache-doris-3.0.2-bin-x64/fe/bin
./start_be.sh
#####################
验证 FE 状态
# 通过 MySQL 客户端连接 看是否能连接成功
mysql -h 127.0.0.1 -P 9030 -uroot
3、部署BE
修改BE配置文件
vi /data/doris/apache-doris-3.0.2-bin-x64/be/conf/be.conf
storage_root_path是数据存储目录(需自己创建 mkdir /data/doris/doris-storage)
JAVA_HOME=/opt/java/jdk-17.0.10
priority_networks = 192.168.3.0/24
storage_root_path = /data/doris/doris-storage
启动BE
cd /data/doris/apache-doris-3.0.2-bin-x64/be/bin
./start_be.sh --daemon
四、集群管理
1、将BE添加到FE
# 使用 MySQL 客户端连接 FE
mysql -h 127.0.0.1 -P 9030 -uroot
# 添加 BE 节点
ALTER SYSTEM ADD BACKEND "127.0.0.1:9050";
2、验证节点状态
SHOW PROC '/backends'\G
-- 检查 `Alive` 字段为 `true`
五、验证部署
1、创建测试库和表
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE example_table (
id INT,
name VARCHAR(50)
) ENGINE=OLAP
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 10
PROPERTIES (
"replication_num" = "1" -- 关键:因为是单机部署只有一个副本,设置副本数为1
);
INSERT INTO example_table VALUES (1, 'Doris');
SELECT * FROM example_table;
2、检查服务状态
# 查看 FE 和 BE 进程
jps # 应看到 PaloFe 和 PaloBe 进程
以上单机部署doris服务成功
3、修改密码
mysql> SET PASSWORD FOR 'root' = PASSWORD('doris-root-password');
#doris-root-password 这个是自己要设置的密码
4、停止服务
cd /data/doris/apache-doris-3.0.2-bin-x64
#停掉fe
./fe/bin/stop_fe.sh
#停掉be
./be/bin/stop_be.sh
六、部署fs_broker
Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,例如读取 HDFS。
cd /data/doris/
#重命名
mv apache-doris-3.0.2-bin-x64 apache-doris
#到 extensions目录下
cd /data/doris/apache-doris/extensions
#把apache_hdfs_broker移动到fe目录下
mv apache_hdfs_broker/ /data/doris/apache-doris/fe/
启动broker
/data/doris/apache-doris/fe/apache_hdfs_broker/bin/start_broker.sh --daemon
# 使用 MySQL 客户端连接 FE (前提已启动FE)
mysql -h 127.0.0.1 -P 9030 -uroot -p123456
# 添加 borker 节点
ALTER SYSTEM ADD BROKER broker_name "127.0.0.1:8000";
mysql> SHOW PROC "/brokers";
查看服务进程 jps
七、客户端连接doris
能连接mysql的客户端都可以
下图是datagrip连接
八、修改主机名并重启服务
1、修改虚拟机主机名
hostnamectl set-hostname doris01
修改hosts文件
vi /etc/hosts
#末端添加一行
192.168.111.32 doris01
然后重启系统,使其生效
reboot
2、修改主机C盘的hosts文件
默认位置C:\Windows\System32\drivers\etc\hosts
末尾加上一行
192.168.111.32 doris01
修改关闭文件后,需要刷新DNS缓存才能使新的映射关系生效。
在Windows系统中,可以按下Win+R键,打开运行窗口,输入命令“ipconfig /flushdns”并回车执行。
ipconfig /flushdns
以上ip设置完毕!
3、修改Doris配置并重启服务
开启doris服务并通过mysql客户端进入FE
#进入doris的fe
mysql -h doris01 -P 9030 -uroot -p123456
下线BE节点
#下线BE节点
ALTER SYSTEM DECOMMISSION BACKEND "127.0.0.1:9050";
停止BE服务和broker服务
cd /data/doris/apache-doris
./be/bin/stop_be.sh
./fe/apache_hdfs_broker/bin/stop_broker.sh
从 FE 节点移除 BE 信息和broker信息,避免重启后自动注册,然后再添加新的BE节点和broker节点
mysql -h doris01 -P 9030 -uroot -p123456
#删除旧BE节点
ALTER SYSTEM DROPP BACKEND "127.0.0.1:9050";
#添加新BE节点
ALTER SYSTEM ADD BACKEND "doris01:9050";
#查看BE节点情况
SHOW PROC '/backends'\G;
#删除旧broker
ALTER SYSTEM DROP BROKER broker_name "127.0.0.1:8000";
#添加新的borker节点
ALTER SYSTEM ADD BROKER broker01 "doris01:8000";
#查看borker节点情况
SHOW PROC "/brokers" \G;
清理 BE 节点文件
#BE存储文件(如果有重要数据记得备份)
cd /data/doris/doris-storage
#删除
rm -rf *
重启服务!