Apache Doris(2)系统运维

发布时间:2026/10/31 10:52:17
Apache Doris(2)系统运维 一.系统运维1.1FE主节点切换首先要开放云服务器 UFW 端口9050 9060 8040 8060 9010 8030 9030 9020 1另一个FE加入集群20260608查看结果来说FE当前只有一个节点有BE节点有两个。# 初始化 192.168.10.12 的FEcd/data/soft/doris/fe bin/start_fe.sh--helper192.168.10.11:9010--daemon添加 角色 到 FE集群alter system add FOLLOWER 192.168.10.12:9010;再用show frontends \G;验证FE状态rootdoris-node-01:/data/soft/doris/fe/conf# mysql -uroot -p -h192.168.10.11 -P9030Enter password: Welcome to the MySQL monitor. Commands end with;or\g. Your MySQL connectionidis1430Server version:5.7.99 doris version doris-3.1.4-rc02-7f5ba43de6 Copyright(c)2000,2026, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Typehelp;or\hforhelp. Type\ctoclearthe current input statement. mysqlalter systemaddFOLLOWER192.168.10.12:9010;mysqlshow frontends\G;***************************1. row *************************** Name: fe_21492154_eeb6_4af6_bbe4_2a6b16e64dfa Host:192.168.10.11 EditLogPort:9010HttpPort:8030QueryPort:9030RpcPort:9020ArrowFlightSqlPort:-1Role: FOLLOWER IsMaster:trueClusterId:670263411Join:trueAlive:trueReplayedJournalId:5941788LastStartTime:2026-05-29 06:28:21 LastHeartbeat:2026-06-0910:54:45 IsHelper:trueErrMsg: Version: doris-3.1.4-rc02-7f5ba43de6 CurrentConnected: Yes ***************************2. row *************************** Name: fe_fb70c731_ef49_4d42_94d8_13417e258234 Host:192.168.10.12 EditLogPort:9010HttpPort:8030QueryPort:9030RpcPort:9020ArrowFlightSqlPort:-1Role: FOLLOWER IsMaster:falseClusterId:670263411Join:trueAlive:trueReplayedJournalId:5941787LastStartTime:2026-06-0910:52:09 LastHeartbeat:2026-06-0910:54:45 IsHelper:trueErrMsg: Version: doris-3.1.4-rc02-7f5ba43de6 CurrentConnected: No2rowsinset(0.02sec)mysql说明 FE 已经恢复正常了指标192.168.10.11192.168.10.12状态Alivetruetrue✅Jointruetrue✅RoleFOLLOWERFOLLOWER✅QueryPort90309030✅RpcPort90209020✅Versiondoris-3.1.4doris-3.1.4✅ClusterId一致一致✅ReplayedJournalId59417885941787仅差 1正常2切换IsMastertrue当前状态HostRoleIsMaster192.168.10.11FOLLOWER✅ true当前 Master192.168.10.12FOLLOWERfalse执行bin/stop_fe.sh停止FE注意有 systemd 运维平台FE会被自动拉起所以jps的时候FE已在进程中且进程号与原来不同rootdoris-node-01:/data/soft/doris/fe# bin/stop_fe.shWaitingforfe process with PID319295to terminate stopjavaand remove PIDfilerootdoris-node-01:/data/soft/doris/fe# jps4482WorkerServer2449990DorisFE258038DorisBE2450960Jps6469ApiApplicationServer1443280war7304MasterServer6716AlertServer11404metabase.jar3934QuorumPeerMain再查看SHOW FRONTENDS;192.168.10.12的IsMastertrue了所以已切换成功。HostEditLogPortHttpPortQueryPortRpcPortArrowFlightSqlPortRoleIsMaster192.168.10.119010803090309020-1FOLLOWERFALSE192.168.10.129010803090309020-1FOLLOWERTRUE1.2BE存储调整rootdoris-node-01:~# cd /data/soft/doris/berootdoris-node-01:/data/soft/doris/be# vim conf/be.conf# 修改以下内容# 原内容 storage_root_path /data/soft/doris/be/storagestorage_root_path/data/soft/doris/be/storage,medium:SSD rootdoris-node-01:/data/soft/doris/be# ./bin/stop_be.shWaitingforbe process with PID1241744to terminate stop doris_be and remove PIDfilerootdoris-node-01:/data/soft/doris/be# ./bin/start_be.shBackend is already running as process3328025, stop it first1.3内存调整查看BE的内存限制SHOWBACKEND CONFIGLIKEmem_limit;BackendIdHostKeyValueTypeIsMutable1777017087532192.168.10.11mem_limit44Gstd::stringFALSE1777017087608192.168.10.12mem_limit48Gstd::stringFALSE修改 be.conf 的配置rootdoris-node-01:~# cd /data/soft/doris/be/conf/rootdoris-node-01:/data/soft/doris/be/conf# lltotal28drwxr-xr-x2root root4096Apr2417:20 ./ drwxr-xr-x12root root4096Dec2610:41../ -rw-r--r--1root root1320Dec2610:41 asan_suppr.conf -rw-r--r--1root root4754Apr2417:20 be.conf -rw-r--r--1root root898Dec2610:41 lsan_suppr.conf -rw-r--r--1root root1529Dec2610:41 odbcinst.ini rootdoris-node-01:/data/soft/doris/be/conf# vim be.conf# 修改 be.conf 的mem_limit64G重启BE注意每个修改了的 BE 都要重启才行rootdoris-node-01:/data/soft/doris/be/conf# systemctl status doris-be● doris-be.service - Apache Doris Backend Service Loaded: loaded(/etc/systemd/system/doris-be.service;disabled;preset: enabled)Active: active(running)since Fri2026-05-29 06:28:17 CST;1week3days ago Main PID:319394(doris_be)Tasks:1924(limit:151419)Memory:4.6G(peak:70.1G)CPU: 1d 1h 4min39.986s CGroup: /system.slice/doris-be.service └─319394 /data/soft/doris/be/lib/doris_be May2906:28:16 doris-node-01 systemd[1]: Starting doris-be.service - Apache Doris Backend Service... May2906:28:17 doris-node-01 systemd[1]: Started doris-be.service - Apache Doris Backend Service. rootdoris-node-01:/data/soft/doris/be/conf# systemctl restart doris-berootdoris-node-01:/data/soft/doris/be/conf# systemctl status doris-be● doris-be.service - Apache Doris Backend Service Loaded: loaded(/etc/systemd/system/doris-be.service;disabled;preset: enabled)Active: active(running)since Mon2026-06-0813:49:59 CST;20s ago Process:257303ExecStart/data/soft/doris/be/bin/start_be.sh--daemon(codeexited,status0/SUCCESS)Main PID:258038(doris_be)Tasks:1827(limit:151419)Memory:1.4G(peak:1.5G)CPU:5.098s CGroup: /system.slice/doris-be.service └─258038 /data/soft/doris/be/lib/doris_be Jun 0813:49:58 doris-node-01 systemd[1]: Starting doris-be.service - Apache Doris Backend Service... Jun 0813:49:59 doris-node-01 systemd[1]: Started doris-be.service - Apache Doris Backend Service. rootdoris-node-01:/data/soft/doris/be/conf#修改完成后再次SHOW BACKEND CONFIG LIKE mem_limit;BackendIdHostKeyValueTypeIsMutable1777017087532192.168.10.11mem_limit64Gstd::stringFALSE1777017087608192.168.10.12mem_limit72Gstd::stringFALSE再验证SHOW WORKLOAD GROUPS;是否限制结果解析允许内存突破BE mem_limit*30%、不限制CPU、不限制并发。说明 Workload Group 已经放行了。配置项当前值说明cpu_share1024默认memory_limit30%Workload Group内存占BE内存的30%enable_memory_overcommittrue允许突破30%cpu_hard_limit-1不限制CPUmax_concurrency2147483647不限制并发1.4参数修改参数名称参数归属支持SET SESSION临时会话支持SET GLOBAL全局动态支持写入fe.conf支持写入be.conf核心备注exec_mem_limitFE 系统变量下发到 BE 执行✅ 是✅ 是✅ 是❌ 否单查询单 BE 的执行内存上限enable_spill分两层1. FE 会话变量查询级开关2. BE 静态参数节点总开关✅ 是查询级✅ 是查询级默认✅ 是查询级默认✅ 是节点总开关BE 总开关必须开启会话级开关才生效enable_force_spillFE 系统变量✅ 是✅ 是✅ 是❌ 否强制所有算子走落盘逻辑生产建议关闭spill_aggregation_sink_mem_limit_bytesFE 系统变量✅ 是✅ 是✅ 是❌ 否聚合算子触发落盘的内存阈值spill_join_build_sink_mem_limit_bytesFE 系统变量✅ 是✅ 是✅ 是❌ 否Join 构建端触发落盘的内存阈值spill_sort_sink_mem_limit_bytesFE 系统变量✅ 是✅ 是✅ 是❌ 否排序算子触发落盘的内存阈值query_timeoutFE 系统变量✅ 是✅ 是✅ 是❌ 否查询超时时间单位秒可以 session 级修改参数3.1版本里好像没有支持全局修改只能每次自己写上-- 使用细粒度的落盘开关SETexec_mem_limit24GB;-- 严格压低到 24GBSETenable_agg_spilltrue;-- 开启聚合落盘针对 GROUP BY 和 DISTINCTSETenable_sort_spilltrue;-- 开启排序落盘预防 UNION DISTINCT 或 ORDER BY 或 SORT 产生的压力SETenable_join_spilltrue;-- 开启join落盘预防 Join 产生的压力-- SET enable_force_spill true; -- 强制落盘无论是否内存够用SETquery_timeout86400;验证是否开启Variable_nameValueDefault_ValueChangedenable_agg_spillTRUEFALSE1enable_force_spillTRUEFALSE1enable_join_spillTRUEFALSE1enable_sort_spillTRUEFALSE1spill_streaming_agg_mem_limit26843545626843545601FE全局参数调整# 4.1.1默认值为 true控制是否启用 Nereids 自研的分布式物理执行计划生成器决定了多表关联、聚合等算子在多 BE 节点上的分布式执行策略enable_nereids_distribute_plannertrue# 全局默认存储介质改为 SSD新建表/新分区不指定时默认生效default_storage_mediumSSD# 关闭严格存储介质检查全SSD集群推荐开启falseenable_strict_storage_medium_checkfalse# 单查询单 BE 的内存上限exec_mem_limit16GB# 强制所有算子走落盘逻辑生产建议关闭enable_force_spillfalse# 允许落盘BE必须开启enable_spilltrue# 聚合12GB再落盘spill_aggregation_sink_mem_limit_bytes12884901888# Join构建端12GB再落盘spill_join_build_sink_mem_limit_bytes12884901888# 排序10GB再落盘spill_sort_sink_mem_limit_bytes12884901888# 查询超时 6hquery_timeout21600# 强制单节点 Pipeline 任务数为 4大幅降低并行内存叠加parallel_pipeline_task_num4# 降低 Exchange 并发避免 buffer 放大parallel_exchange_instance_num82BE全局参数调整# BE 级 spill 总开关必须开启会话级开关才生效enable_spilltrue3全局参数设定-- 全局参数设定SETGLOBALexec_mem_limit16GB;SETGLOBALenable_spilltrue;SETGLOBALenable_force_spillfalse;SETGLOBALspill_aggregation_sink_mem_limit_bytes12884901888;SETGLOBALspill_join_build_sink_mem_limit_bytes12884901888;SETGLOBALspill_sort_sink_mem_limit_bytes12884901888;SETGLOBALspill_sort_merge_mem_limit_bytes12884901888;SETGLOBALquery_timeout21600;SETGLOBALparallel_pipeline_task_num4;SETGLOBALparallel_exchange_instance_num8;参数名单位你设置的数值换算后大小说明exec_mem_limit支持带单位GB/MB/KB默认字节24GB24GB单查询总内存上限spill_aggregation_sink_mem_limit_bytes字节Bytes2147483648020GB聚合算子主动落盘阈值spill_join_build_sink_mem_limit_bytes字节Bytes2147483648020GBJoin 构建端主动落盘阈值spill_sort_sink_mem_limit_bytes字节Bytes2147483648020GB普通排序算子主动落盘阈值1.5异常恢复1FE无Master角色问题描述Doris 里两台服务器两个FE节点都是Follower角色现在master挂掉了另一个FE角色jps看还是在的怎么能让另一个FE变成Master注释当前部署了 2 个 Follower 角色的 FE 节点Doris 的 FE Master 选举基于多数派原则超过半数的 Follower 存活才能完成选举。2 个 Follower 节点的法定多数派为2 个当原 Master 节点挂掉后仅剩 1 个 Follower 不满足多数派要求因此无法自动触发选举剩余 FE 会一直保持 Follower 状态进程虽然存活jps 可见但无法承担 Master 职责元数据写入类操作会全部失效。解决方案以故障恢复模式启动 FE# 默认元数据目录为 doris-meta可在 conf/fe.conf 的 meta_dir 配置中确认cp-r doris-meta doris-meta_backup_$(date%Y%m%d_%H%M)# 停止当前FE./bin/stop_fe.sh# 以故障恢复模式启动 FE./bin/start_fe.sh--metadata_failure_recovery --daemon1.6设置开机/异常自启1FE节点配置配置 doris-be.service 设置开机自启动 和 异常自启动rootdoris-node-01:~# vim /etc/systemd/system/doris-fe.service[Unit]DescriptionApache Doris Frontend ServiceAfternetwork.target[Service]TypesimpleUserrootLimitNOFILE200000LimitNPROC200000EnvironmentJAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64ExecStart/data/soft/doris/fe/bin/start_fe.shExecStop/data/soft/doris/fe/bin/stop_fe.shTimeoutStopSec120RestartalwaysRestartSec5CPUQuota400%[Install]WantedBymulti-user.target rootdoris-node-01:~# systemctl daemon-reloadrootdoris-node-01:~# systemctl enable doris-ferootdoris-node-01:~# systemctl restart doris-ferootdoris-node-01:~# systemctl status doris-ferootdoris-node-01:/data/soft/doris/fe# systemctl status doris-fe● doris-fe.service - Apache Doris Frontend Service Loaded: loaded(/etc/systemd/system/doris-fe.service;enabled;preset: enabled)Active: active(running)since Mon2026-07-2015:51:10 CST;8s ago Main PID:3045720(bash)Tasks:258(limit:151419)Memory:1.3G(peak:1.3G)CPU:22.848s CGroup: /system.slice/doris-fe.service ├─3045720bash/data/soft/doris/fe/bin/start_fe.sh └─3046353 /usr/lib/jvm/java-17-openjdk-amd64/bin/java-Dfile.encodingUTF-8-Djavax.security.auth.useSubjectCredsOnlyfalse-Xmx8192m-Xms8192m-XX:HeapDumpOnOutOfMemoryError-XX:HeapDumpPath/mnt/dataJul2015:51:10 doris-node-01 systemd[1]: doris-fe.service: Scheduled restart job, restart counter is at13. Jul2015:51:10 doris-node-01 systemd[1]: Started doris-fe.service - Apache Doris Frontend Service. rootdoris-node-01:~# systemctl is-enabled doris-feenabled2BE节点配置配置 doris-be.service 设置开机自启动 和 异常自启动其中CPUQuota1200%根据服务器自行设定1200%即12核CPU可用。rootdoris-node-01:~# vim /etc/systemd/system/doris-be.service[Unit]DescriptionApache Doris Backend ServiceAfternetwork.target[Service]TypesimpleUserrootLimitNOFILE200000LimitNPROC200000EnvironmentJAVA_HOME/usr/lib/jvm/java-17-openjdk-amd64# 前台启动不加 --daemon由systemd管理进程生命周期ExecStart/data/soft/doris/be/bin/start_be.shExecStop/data/soft/doris/be/bin/stop_be.sh# BE停止需要刷盘落数据延长超时避免数据损坏TimeoutStopSec120RestartalwaysRestartSec5CPUQuota1200%[Install]WantedBymulti-user.target rootdoris-node-01:~# systemctl daemon-reloadrootdoris-node-01:~# systemctl enable doris-berootdoris-node-01:~# systemctl restart doris-berootdoris-node-01:~# systemctl status doris-be● doris-be.service - Apache Doris Backend Service Loaded: loaded(/etc/systemd/system/doris-be.service;enabled;preset: enabled)Active: active(running)since Mon2026-07-2015:33:56 CST;36s ago Main PID:1157464(bash)Tasks:1786(limit:151419)Memory:777.9M(peak:979.7M)CPU:5.451s CGroup: /system.slice/doris-be.service ├─1157464bash/data/soft/doris/be/bin/start_be.sh └─1158254 /data/soft/doris/be/lib/doris_be Jul2015:33:56 doris-node-01 systemd[1]: Started doris-be.service - Apache Doris Backend Service. rootdoris-node-01:~# systemctl is-enabled doris-beenabled二.权限管理2.1用户权限管理1生产消费角色IP地址192.168.10.20端口号9030用户名app_user密码YourPassword123!用户角色实际未设定role角色口头定义为“生产消费角色”用户权限数据库名数据库说明授予权限权限说明dimo维度层、码表SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图lkao集市层SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图trko应用层SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图tmpo临时数据SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图stdo标准接入SELECT_PRIV仅只读只能查询表数据无写入、建表、删改权限mapo码映射SELECT_PRIV仅只读只能查询表数据无写入、建表、删改权限mfdo中间层SELECT_PRIV仅只读只能查询表数据无写入、建表、删改权限root用户管理 app_user-- 用户-- 创建用户 app_user密码 YourPassword123!CREATEUSERapp_user%IDENTIFIEDBYYourPassword123!;-- 修改密码-- SET PASSWORD FOR app_user% PASSWORD(YourPassword123!)-- 删除用户-- DROP USER app_user%-- 授权GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONdimo.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONlkao.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONtrko.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONtmpo.*TOapp_user%;GRANTSELECT_PRIVONstdo.*TOapp_user%;GRANTSELECT_PRIVONmapo.*TOapp_user%;GRANTSELECT_PRIVONmfdo.*TOapp_user%;-- 撤销权限REVOKESELECT_PRIVONinformation_schema.*FROMapp_user%;REVOKESelect_privONmysql.*FROMapp_user%;-- 查看用户SELECTUser,Host,authentication_stringFROMmysql.user;-- 查看用户权限SHOWALLGRANTS;SHOWGRANTSFORapp_user%;2数仓模型维护用户名app_user密码YourPassword123!用户角色实际未设定role角色口头定义为“数仓中间层生产角色”用户权限数据库名数据库说明授予权限权限说明dimo维度层、码表SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图lkao集市层SELECT_PRIV仅只读只能查询表数据无写入、建表、删改权限trko应用层SELECT_PRIV仅只读只能查询表数据无写入、建表、删改权限tmpo临时数据SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图stdo标准接入SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图mapo码映射SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图mfdo中间层SELECT_PRIV、LOAD_PRIV、CREATE_PRIV、ALTER_PRIV、DROP_PRIV完整读写权限查询数据、数据导入 / 增删改、新建表 / 视图、修改表结构、删除表 / 视图root用户建立 app_user-- 创建用户 app_user密码 YourPassword123!CREATEUSERapp_user%IDENTIFIEDBYYourPassword123!;-- 修改密码-- SET PASSWORD FOR app_user% PASSWORD(YourPassword123!)-- 删除用户-- DROP USER app_user%-- 授权GRANTSELECT_PRIVONlkao.*TOapp_user%;GRANTSELECT_PRIVONtrko.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONtmpo.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONdimo.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONstdo.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONmapo.*TOapp_user%;GRANTSELECT_PRIV,LOAD_PRIV,CREATE_PRIV,ALTER_PRIV,DROP_PRIVONmfdo.*TOapp_user%;

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询