三节点CentOS7集群部署Apache Doris 1.2.4.1全流程指南
在企业级数据分析场景中,Apache Doris凭借其MPP架构和实时分析能力已成为许多组织的核心基础设施。本文将详细演示如何在三台CentOS7服务器上构建高可用Doris集群,涵盖从系统调优到可视化管理的全链路实践。
1. 集群规划与基础环境配置
1.1 硬件与角色分配
典型生产环境建议采用奇数台FE节点实现高可用,以下为示例配置:
| 主机名 | IP地址 | 角色分配 | 推荐配置 |
|---|---|---|---|
| doris-fe1 | 10.10.104.80 | FE Leader + BE | 16核64GB+SSD存储 |
| doris-be1 | 10.10.104.81 | BE节点 | 16核64GB+HDD存储 |
| doris-be2 | 10.10.104.82 | BE节点 | 16核64GB+HDD存储 |
关键原则:
- FE节点建议3个以上(生产环境至少3台)
- BE节点数量根据数据量和查询负载决定
- FE/BE混合部署时需确保资源隔离
1.2 系统级调优
在所有节点执行以下优化命令:
# 关闭防火墙和SELinux systemctl stop firewalld && systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 # 内存与文件描述符优化 swapoff -a sed -ri 's/.*swap.*/#&/' /etc/fstab echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf # 内核参数调整(BE节点必需) echo "vm.max_map_count=2000000" >> /etc/sysctl.conf sysctl -p1.3 依赖安装与时间同步
# 安装基础依赖 yum install -y java-1.8.0-openjdk.x86_64 maven cmake byacc flex automake \ libtool-bin bison binutils-dev libiberty-dev zip unzip \ libncurses5-dev curl git ninja-build python # 配置NTP时间同步 yum install -y chrony systemctl start chronyd && systemctl enable chronyd chronyc sources -v2. Doris集群部署实战
2.1 软件包分发与目录准备
在所有节点创建统一目录结构:
mkdir -p /data/{doris,soft,storage}从官网下载以下组件并分发到各节点/data/soft目录:
- apache-doris-fe-1.2.4.1-bin-x86_64.tar.xz
- apache-doris-be-1.2.4.1-bin-x86_64-noavx2.tar.xz
- apache-doris-dependencies-1.2.4.1-bin-x86_64.tar.xz
2.2 FE节点部署流程
在doris-fe1节点执行:
tar xf apache-doris-fe-1.2.4.1-bin-x86_64.tar.xz -C /data/doris/ mv /data/doris/apache-doris-fe-1.2.4.1-bin-x86_64 /data/doris/fe # 修改配置文件 cat > /data/doris/fe/conf/fe.conf <<EOF http_port = 8030 rpc_port = 9020 query_port = 9030 mysql_service_port = 9030 meta_dir = /data/storage/fe EOF # 首次启动FE sh /data/doris/fe/bin/start_fe.sh --daemon2.3 BE节点部署规范
在所有BE节点执行:
tar xf apache-doris-be-1.2.4.1-bin-x86_64-noavx2.tar.xz -C /data/doris/ mv /data/doris/apache-doris-be-1.2.4.1-bin-x86_64-noavx2 /data/doris/be # 配置BE参数 cat > /data/doris/be/conf/be.conf <<EOF be_port = 9060 webserver_port = 8040 heartbeat_service_port = 9050 brpc_port = 8060 storage_root_path = /data/storage/be EOF3. 集群初始化与节点管理
3.1 通过MySQL客户端初始化
-- 设置root密码 SET PASSWORD FOR 'root' = PASSWORD('YourSecurePassword'); -- 添加BE节点 ALTER SYSTEM ADD BACKEND "10.10.104.80:9050"; ALTER SYSTEM ADD BACKEND "10.10.104.81:9050"; ALTER SYSTEM ADD BACKEND "10.10.104.82:9050"; -- 添加Broker节点 ALTER SYSTEM ADD BROKER broker1 "10.10.104.80:8000"; ALTER SYSTEM ADD BROKER broker2 "10.10.104.81:8000"; ALTER SYSTEM ADD BROKER broker3 "10.10.104.82:8000";3.2 DBeaver连接配置技巧
- 新建MySQL连接,主机填写FE节点IP
- 端口设置为9030(默认MySQL协议端口)
- 用户名/密码使用刚设置的凭证
- 高级设置中建议:
- 关闭"autoReconnect"
- 设置"useSSL"为false
- 超时时间设为30秒以上
连接测试常见问题:
- 若出现"Too many connections",需检查FE的
max_conn_per_be参数 - 连接缓慢时可尝试调整
query_timeout参数
4. 服务启动与故障排查
4.1 启动顺序与健康检查
# 正确启动顺序 FE节点 → BE节点 → Broker节点 # 检查服务状态 curl http://10.10.104.80:8030/api/bootstrap curl http://10.10.104.80:8040/api/health4.2 典型错误解决方案
问题1:BE启动失败报错"max_map_count"
# 永久解决方案 echo "vm.max_map_count=2000000" >> /etc/sysctl.conf sysctl -p问题2:FE元数据损坏
- 停止所有FE节点
- 在元数据目录执行恢复:
java -jar /data/doris/fe/lib/fe.jar --recover问题3:BE节点磁盘不均通过以下命令触发数据均衡:
ADMIN SET FRONTEND CONFIG ("disable_balance" = "false");5. 生产环境优化建议
5.1 关键参数调优
在fe.conf中调整:
max_mysql_service_task_threads_num=2048 tablet_create_timeout_second=30在be.conf中建议:
flush_thread_num_per_store=4 streaming_load_rpc_max_alive_time_sec=12005.2 监控体系搭建
推荐监控指标:
- FE JVM使用率
- BE Compaction分数
- 查询延迟P99值
- 副本健康状态
可使用Prometheus采集以下端点:
- FE:
http://fe_ip:8030/metrics - BE:
http://be_ip:8040/metrics
实际部署中发现,合理设置storage_medium参数对SSD/HDD混合环境性能提升显著。建议将热数据目录指向SSD,冷数据目录配置为HDD,通过存储策略自动管理数据迁移。