Doris生產集群最低部署方案(2025年4月版)
一、節點規劃與數量
1. FE節點(Frontend)
- 數量:至少 3個節點(1個Follower + 2個 Observer),確保高可用(HA)。
- 角色分配:
- Follower:參與元數據讀寫和Leader選舉。
- Observer:僅提供元數據備份和查詢負載均衡,不參與選舉。
2. BE節點(Backend)
- 數量:至少 3個節點(每個物理機部署1個BE實例),支持 3副本數據存儲,避免單機多實例導致數據分布不均。
二、硬件配置要求
組件 | CPU | 內存 | 磁盤 | 網絡 | 實例數 | 來源 |
---|---|---|---|---|---|---|
FE | 16核+ | 64GB+ | SSD或RAID卡,100GB+ | 萬兆網卡 | 3 | |
BE | 16核+ | 64GB+ | SSD/SATA,單盤≥1TB | 萬兆網卡 | 3 |
詳細說明:
- FE磁盤:元數據(
meta_dir
)需單獨掛載 SSD,容量≥100GB,避免與日志混合存儲。 - BE磁盤:總容量=原始數據量 × 3(副本數) × 1.4(預留40% Compaction空間)。
- 若混合存儲介質(如SSD+HDD),需在
storage_root_path
中標記介質類型(如/data1.HDD;/data2.SSD
)。
- 若混合存儲介質(如SSD+HDD),需在
三、操作系統與軟件環境
1. 操作系統
- 版本:CentOS 7.1+ / Ubuntu 16.04+,推薦 CentOS 7.9(穩定性已驗證)。
- 文件系統:ext4或xfs。
2. 系統優化
- 關閉Swap:
swapoff -a
并永久禁用。 - 文件句柄數:
echo "* soft nofile 65536" >> /etc/security/limits.conf echo "* hard nofile 65536" >> /etc/security/limits.conf
- 時鐘同步:所有節點時間偏差≤5秒(使用NTP服務)。
- 內存參數:
vm.max_map_count=2000000
(防止BE啟動失敗)。
四、網絡與端口配置
端口 | 默認值 | 用途 | 通信方向 | 來源 |
---|---|---|---|---|
FE query_port | 9030 | MySQL協議查詢入口 | 用戶→FE | |
FE http_port | 8030 | Web管理界面 | FE?FE、用戶→FE | |
BE be_port | 9060 | 接收FE的元數據操作請求 | FE→BE | |
BE brpc_port | 8060 | BE節點間數據傳輸(高性能RPC) | BE?BE、FE→BE |
網絡要求:
- 帶寬:萬兆網卡(10Gbps),降低節點間數據傳輸延遲。
- IP綁定:多網卡環境下需在
fe.conf
和be.conf
中指定priority_networks
(如10.193.0.0/24
)。
五、部署流程(精簡版)
1. 環境準備
- 創建專用用戶(如
doris
),分配/data/doris
目錄權限。 - 安裝Java 1.8(FE/BE依賴)和GCC 4.8.2+(編譯工具鏈)。
2. FE部署
- 配置文件(
fe.conf
):meta_dir = /data/doris-meta # 獨立SSD磁盤 priority_networks = 10.193.0.0/24 JAVA_OPTS = "-Xmx16G" # 堆內存≥8GB
- 啟動命令:
bin/start_fe.sh --daemon
。
3. BE部署
- 配置文件(
be.conf
):storage_root_path = /data1/doris.HDD;/data2/doris.SSD
- 注冊BE:通過MySQL客戶端連接FE執行:
ALTER SYSTEM ADD BACKEND "BE_IP:9050"; # 依次添加所有BE節點
六、驗證與監控
1. 健康檢查
- FE狀態:
curl http://FE_IP:8030/api/bootstrap
返回{"status":"OK"}
。 - BE狀態:
SHOW BACKENDS\G
查看節點存活及磁盤使用率。
2. 監控工具
- Prometheus + Grafana:采集BE的
tablet_num
、FE的query_latency
等指標。
七、擴展與高可用建議
- FE擴展:新增Observer節點分擔查詢壓力,不影響元數據寫入。
- BE擴容:按數據增長線性增加BE節點,單集群建議10-100臺。
- 混合部署:若FE與BE混部,需隔離元數據目錄與數據目錄至不同磁盤。