CentOS 7.x 安装配置 Apache Doris 详细教程-元一软件

📅 2026/7/15 5:27:13 👁️ 阅读次数 📝 编程学习
CentOS 7.x 安装配置 Apache Doris 详细教程-元一软件

CentOS 7.x 安装配置 Apache Doris 详细教程

一、环境准备

1.1 系统与硬件要求

表格

项目测试环境最低要求生产环境建议
操作系统CentOS 7.3+ (64 位)CentOS 7.9+
CPU4 核 +16 核 +
内存FE: 8GB+ / BE: 16GB+FE: 64GB+ / BE: 64GB+
磁盘100GB+SSD 500GB+

1.2 软件依赖版本

  • Doris 2.x: JDK 17+(推荐)
  • Doris 1.x: JDK 1.8+
  • MySQL 客户端(用于连接测试)

注意:Doris 0.14.13.1 及之后版本 CPU 需要支持 AVX2 指令集。检查命令:

bash

运行

cat /proc/cpuinfo | grep avx2

若无输出,需下载带noavx2后缀的安装包。


二、系统优化配置(所有节点执行)

2.1 关闭防火墙和 SELinux

# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.2 关闭交换分区

# 临时关闭 swapoff -a # 永久关闭(注释swap行) sed -i 's/.*swap.*/#&/' /etc/fstab

2.3 设置文件句柄数

cat >> /etc/security/limits.conf << EOF * soft nofile 1000000 * hard nofile 1000000 * soft nproc 65535 * hard nproc 65535 EOF

修改后需重新登录终端生效,可通过ulimit -n验证。

2.4 调整内核参数

cat >> /etc/sysctl.conf << EOF vm.max_map_count = 2000000 vm.swappiness = 0 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 EOF # 生效 sysctl -p

2.5 关闭透明大页 (THP)

# 临时生效 echo madvise > /sys/kernel/mm/transparent_hugepage/enabled echo madvise > /sys/kernel/mm/transparent_hugepage/defrag # 永久生效 cat >> /etc/rc.d/rc.local << EOF echo madvise > /sys/kernel/mm/transparent_hugepage/enabled echo madvise > /sys/kernel/mm/transparent_hugepage/defrag EOF chmod +x /etc/rc.d/rc.local

2.6 时钟同步

# 安装chrony yum install -y chrony # 启动并设置开机自启 systemctl start chronyd systemctl enable chronyd # 验证时间同步 chronyc sources

Doris 要求集群节点时钟偏差小于 5000ms,否则会导致元数据异常。

2.7 配置 hosts 文件

所有节点配置主机名映射,示例:

cat >> /etc/hosts << EOF 192.168.1.101 doris-node1 192.168.1.102 doris-node2 192.168.1.103 doris-node3 EOF

2.8 创建运行用户(推荐)

useradd doris passwd doris # 后续建议使用doris用户运行服务

三、安装 JDK

3.1 Doris 2.x 安装 JDK 17

# 安装OpenJDK 17 yum install -y java-17-openjdk java-17-openjdk-devel # 配置环境变量 cat >> /etc/profile << EOF export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=\$JAVA_HOME/bin:\$PATH EOF source /etc/profile # 验证 java -version

3.2 Doris 1.x 安装 JDK 8

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel cat >> /etc/profile << EOF export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=\$JAVA_HOME/bin:\$PATH EOF source /etc/profile

四、下载并解压 Doris

4.1 下载安装包

以 Doris 2.1.8 版本为例(选择对应版本):

cd /usr/local # 下载(支持AVX2) wget https://archive.apache.org/dist/doris/2.1.8/apache-doris-2.1.8-bin-x64.tar.gz # 若CPU不支持AVX2,下载noavx2版本 # wget https://archive.apache.org/dist/doris/2.1.8/apache-doris-2.1.8-bin-x64-noavx2.tar.gz

官方下载地址:https://doris.apache.org/download/

4.2 解压并重命名

tar -xzvf apache-doris-2.1.8-bin-x64.tar.gz mv apache-doris-2.1.8-bin-x64 doris # 设置目录权限 chown -R doris:doris /usr/local/doris

4.3 配置环境变量

cat >> /etc/profile << EOF export DORIS_HOME=/usr/local/doris export PATH=\$DORIS_HOME/fe/bin:\$DORIS_HOME/be/bin:\$PATH EOF source /etc/profile

五、配置并启动 FE (Frontend)

5.1 创建元数据目录

mkdir -p /data/doris/fe/doris-meta chown -R doris:doris /data/doris

5.2 修改 FE 配置文件

vim /usr/local/doris/fe/conf/fe.conf

核心配置项(根据实际情况修改):

# 元数据存储目录(必须提前创建) meta_dir = /data/doris/fe/doris-meta # 网络绑定(多网卡时必须配置,指定内网网段) priority_networks = 192.168.1.0/24 # JVM 内存配置(根据机器内存调整) JAVA_OPTS="-Xms8g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200" # 端口配置(默认即可,冲突时修改) http_port = 8030 # Web UI端口 rpc_port = 9020 # 内部RPC端口 query_port = 9030 # MySQL协议查询端口 edit_log_port = 9010 # 元数据日志同步端口 # 日志目录 sys_log_dir = /data/doris/fe/log audit_log_dir = /data/doris/fe/log

关键说明priority_networks是最容易踩坑的配置,多网卡机器必须配置,格式为IP/掩码位,如192.168.1.101/24

5.3 启动 FE

# 切换到doris用户 su - doris # 启动FE(首次启动) cd /usr/local/doris/fe bin/start_fe.sh --daemon

5.4 验证 FE 启动

# 查看进程 ps aux | grep PaloFe # 查看日志 tail -f /usr/local/doris/fe/log/fe.log # 访问Web UI # 浏览器打开: http://<FE_IP>:8030 # 默认账号: root 密码: 空

FE 启动成功后,日志中会出现transfer from UNKNOWN to MASTER


六、配置并启动 BE (Backend)

6.1 创建数据存储目录

mkdir -p /data/doris/be/storage chown -R doris:doris /data/doris/be

生产环境建议配置多块磁盘,用分号分隔,例如:/data1,medium:SSD;/data2,medium:HDD

6.2 修改 BE 配置文件

vim /usr/local/doris/be/conf/be.conf

核心配置项:

ini

# 数据存储目录 storage_root_path = /data/doris/be/storage # 网络绑定(与FE同网段) priority_networks = 192.168.1.0/24 # 端口配置 be_port = 9060 # BE内部服务端口 webserver_port = 8040 # BE Web端口 heartbeat_service_port = 9050 # 心跳端口 # 内存配置(建议为机器内存的70%-80%) mem_limit = 80% # 日志目录 sys_log_dir = /data/doris/be/log

6.3 启动 BE

su - doris cd /usr/local/doris/be bin/start_be.sh --daemon

6.4 验证 BE 启动

# 查看进程 ps aux | grep doris_be # 查看日志 tail -f /usr/local/doris/be/log/be.INFO

七、将 BE 添加到集群

BE 启动后不会自动加入集群,需要通过 MySQL 客户端在 FE 上执行添加命令。

7.1 安装 MySQL 客户端

yum install -y mysql

7.2 连接 FE 并添加 BE

# 连接FE(默认端口9030,root用户无密码) mysql -h 127.0.0.1 -P 9030 -u root

在 MySQL 命令行中执行:

sql

-- 添加BE节点(heartbeat_service_port默认9050) ALTER SYSTEM ADD BACKEND "192.168.1.101:9050"; -- 多节点依次添加 -- ALTER SYSTEM ADD BACKEND "192.168.1.102:9050"; -- ALTER SYSTEM ADD BACKEND "192.168.1.103:9050"; -- 查看BE状态 SHOW BACKENDS\G

看到Alive: true表示 BE 已成功加入集群。


八、功能验证

8.1 创建数据库和表

sql

-- 创建数据库 CREATE DATABASE test_db; -- 使用数据库 USE test_db; -- 创建测试表 CREATE TABLE test_table ( id INT, name VARCHAR(50), age INT ) DUPLICATE KEY(id) DISTRIBUTED BY HASH(id) BUCKETS 10 PROPERTIES ("replication_num" = "1");

单机测试时replication_num设为 1,生产环境建议 3。

8.2 插入并查询数据

sql

-- 插入数据 INSERT INTO test_table VALUES (1, 'Alice', 25), (2, 'Bob', 30), (3, 'Charlie', 35); -- 查询数据 SELECT * FROM test_table;

8.3 查看集群状态

sql

-- 查看FE状态 SHOW FRONTENDS\G -- 查看BE状态 SHOW BACKENDS\G -- 查看集群健康状态 SHOW PROC '/cluster_health'\G

九、集群扩容(可选)

9.1 扩容 FE 节点

在新节点配置好 FE 后,以 helper 方式启动:

bin/start_fe.sh --helper master_fe_ip:9010 --daemon

然后在 Master FE 上添加:

sql

-- 添加Follower角色FE ALTER SYSTEM ADD FOLLOWER "new_fe_ip:9010"; -- 添加Observer角色FE ALTER SYSTEM ADD OBSERVER "new_fe_ip:9010";

9.2 扩容 BE 节点

新节点启动 BE 后,在 FE 上执行添加即可:

sql

ALTER SYSTEM ADD BACKEND "new_be_ip:9050";

十、服务启停命令

FE 启停

# 启动 bin/start_fe.sh --daemon # 停止 bin/stop_fe.sh # 重启 bin/stop_fe.sh && bin/start_fe.sh --daemon

BE 启停

# 启动 bin/start_be.sh --daemon # 停止 bin/stop_be.sh # 重启 bin/stop_be.sh && bin/start_be.sh --daemon

十一、常见问题排查

1. FE 启动失败:端口被占用

# 检查端口占用 netstat -tlnp | grep 8030 # 修改 fe.conf 中的端口配置

2. BE 无法连接 FE

  • 检查priority_networks配置是否正确
  • 确认防火墙已关闭
  • 检查 BE 日志中的错误信息

3. BE 状态显示 Alive: false

sql

-- 查看BE最后一次心跳失败原因 SHOW BACKENDS\G -- 重点查看 LastStartTime、LastHeartbeat、ErrMsg 字段

4. vm.max_map_count 报错

启动时提示Please set vm.max_map_count to be 2000000,执行:

sysctl -w vm.max_map_count=2000000

5. 文件句柄数不足

启动报错Too many open files,确认limits.conf配置后重新登录用户。


十二、端口清单

表格

组件端口用途
FE8030HTTP Web UI
FE9030MySQL 协议查询端口
FE9020内部 RPC 通信
FE9010元数据日志同步(edit_log)
BE9050心跳服务端口
BE9060BE 内部服务端口
BE8040BE Web 监控端口
BE8060BRPC 端口