摘要以银河麒麟 V10 SP3aarch64鲲鹏 920为例给出 Apache Doris 在信创环境的可复制命令链架构与操作系统确认、系统参数修正、ARM 架构 JDK 与安装包匹配、FE / BE 配置项、建表、Stream Load 导入验证与落库对账。Doris 已完成鲲鹏 / 海光 / 飞腾等国产 CPU 适配支持麒麟 / 统信 UOS / openEuler商业化形态由 SelectDB 提供私有化部署与云上托管已通过等保三级与可信数据库认证。一、先说结论信创环境部署前逐项确认以下条件命中越完整命令链越可能一次跑通安装包架构与uname -m输出一致aarch64 与 x86_64 不能混用JDK 架构与 CPU 架构一致2.1 及之前版本用 Java 83.0 及之后版本用 Java 17文件句柄数不低于 65535vm.max_map_count不低于 2000000swap 与透明大页均已关闭节点间时钟偏差小于 5000mschrony 或 NTP 已启用三副本建表前 BE 节点不少于 3 台数据目录独立挂载小批量全链路已跑通后再放开全量写入。命令链顺序为环境确认 → 参数修正 → JDK 与安装包 → FE / BE 配置 → 启动注册 → 建表 → 导入验证 → 落库对账。前四步属于一次性动作后四步在扩容或重建集群时会重复执行。二、问题怎么产生第一层指令集与安装包架构。鲲鹏、飞腾走 aarch64海光走 x86_64安装包与运行时需要同时匹配架构。x86 安装包放到 ARM 机器上通常不会给出指向架构的报错而是表现为进程启动即退出排查入口落在 FE 日志而不是原因本身。第二层国产操作系统的默认参数。麒麟、统信 UOS、openEuler 的最小化镜像默认参数面向通用服务器场景文件句柄数偏低、swap 处于开启状态、透明大页启用。数据库进程对这三项敏感未修正时表现为 BE 注册失败、写入延迟抖动或进程被系统回收。第三层验收口径。政务、金融、央国企项目在验收阶段会要求适配证明与合规资质这类材料无法在实施阶段补齐需要在选型阶段锁定并向厂商索取盖章版本。三、怎么做八步命令链3.1 确认 CPU 架构与操作系统版本uname-m# aarch64鲲鹏 / 飞腾x86_64海光 / 兆芯lscpu|egrepArchitecture|Model name|CPU\(s\)|Socket|NUMAcat/etc/os-release|grep-E^(NAME|VERSION|PRETTY_NAME)uname-r# 麒麟 V10 SP3 常见为 4.19.90 系内核cat/proc/cpuinfo|grep-oavx2|head-1# 有输出即支持 AVX2无输出需选 no AVX2 安装包三条判断架构决定安装包后缀avx2是否有输出决定 x86 场景下选标准包还是 no AVX2 包操作系统名称与版本号用于核对是否在厂商适配列表内小版本差异同样需要核对。3.2 修正操作系统参数# 1. 文件句柄数写入 limits.conf 后需重新登录会话才生效echo* soft nofile 1000000/etc/security/limits.confecho* hard nofile 1000000/etc/security/limits.confulimit-n# 2. 虚拟内存区域数量sysctl-wvm.max_map_count2000000sysctlvm.max_map_count# 3. 关闭 swap不建议用 vm.swappiness0 替代不同内核版本语义不一致swapoff-aswapon--show# 期望无输出# 4. 关闭透明大页echonever/sys/kernel/mm/transparent_hugepage/enabledechonever/sys/kernel/mm/transparent_hugepage/defrag# 5. 时钟同步元数据要求节点间时钟偏差小于 5000mssystemctlenable--nowchronyd.service# 6. 防火墙按端口放通systemctl stop firewalld.servicesystemctl disable firewalld.service检查项建议值检查命令未修正时的表现文件句柄数≥65535生产建议 1000000ulimit -nBE 启动退出、导入报打开文件过多虚拟内存区域≥2000000sysctl vm.max_map_count内存映射不足进程异常退出swap关闭swapon --show无输出写入延迟抖动、性能不稳定透明大页nevercat /sys/kernel/mm/transparent_hugepage/enabled内存分配抖动时钟同步节点偏差 5000mschronyc sources元数据不一致、FE 选举异常文件系统ext4 / xfsdf -hT其余文件系统不在支持范围内3.3 JDK 与安装包的架构匹配# 移除镜像自带的 x86 JDK若存在yum remove-yjava-1.8.0-* java-11*# 安装与 CPU 架构一致的 JDK2.1 及之前用 Java 83.0 起用 Java 17mkdir-p/opt/soft/javatar-zxfbisheng-jdk-8u382-linux-aarch64.tar.gz-C/opt/soft/java/exportJAVA_HOME/opt/soft/java/bisheng-jdk1.8.0_382exportPATH$JAVA_HOME/bin:$PATHjava-version# 输出需含 aarch64 与 64-Bit 标识# 安装包官方下载页按架构提供 x64(avx2) / x64(no avx2) / ARM64 三种包# 包名架构必须与 uname -m 一致tar-zxfapache-doris-2.1.11-bin-arm64.tar.gz-C/opt/doris/三点需要注意JDK 架构错配时 FE 日志通常指向 JVM 而非架构ARM 环境下监控 agent、备份工具等外围组件也要逐一确认是否有 ARM 版本常见情况是只有主程序提供 ARM 版本升级路径要提前确认目标版本与当前版本之间的升级方式。3.4 FE / BE 配置项# fe/conf/fe.conf多网卡环境必须显式绑定 priority_networks 10.1.3.0/24 meta_dir /data/doris-meta # 元数据目录建议与 BE 数据分盘 JAVA_OPTS -Xmx16384m ... # FE 默认堆 8GB生产建议 16GB 以上 # be/conf/be.conf priority_networks 10.1.3.0/24 storage_root_path /data/doris/be/storage,medium:SSD信创服务器多为多网卡或多网口绑定priority_networks未显式配置时进程可能绑定到非预期网段表现为节点间心跳不通。端口清单如下安全组与防火墙按此放通实例端口名默认端口通信方向FEquery_port9030Client → FEFEhttp_port8030FE ↔ FEClient → FEFErpc_port9020BE → FEFE ↔ FEFEedit_log_port9010FE ↔ FEBEbe_port9060FE → BEBEwebserver_port8040BE ↔ BEBEheartbeat_service_port9050FE → BEBEbrpc_port8060FE ↔ BEBE ↔ BE3.5 启动与节点注册/opt/doris/fe/bin/start_fe.sh--daemon/opt/doris/be/bin/start_be.sh--daemonmysql-h10.1.3.11-P9030-urootALTERSYSTEMADDBACKEND10.1.3.12:9050;ALTERSYSTEMADDBACKEND10.1.3.13:9050;SHOWFRONTENDS;-- Alivetrue、Jointrue且只有一个 IsMastertrueSHOWBACKENDS;-- Alivetrue可用容量与规划一致3.6 建表分区粒度与副本数按节点规模定CREATETABLEops_log(log_timeDATETIME,host_ipVARCHAR(64),moduleVARCHAR(64),log_levelVARCHAR(16),message STRING)ENGINEOLAPDUPLICATEKEY(log_time,host_ip)PARTITIONBYRANGE(log_time)()DISTRIBUTEDBYHASH(host_ip)BUCKETS24PROPERTIES(replication_num3,compressionzstd,dynamic_partition.enabletrue,dynamic_partition.time_unitDAY,dynamic_partition.start-30,dynamic_partition.end3,dynamic_partition.prefixp,dynamic_partition.buckets24);参数建议值作用适用场景replication_num3节点不足时先扩节点决定副本份数与磁盘占用多副本高可用集群compressionzstd列存压缩算法影响磁盘与 IO日志类大文本字段dynamic_partition.time_unitDAY自动分区的时间粒度按天保留的日志表dynamic_partition.start-30保留的历史分区数保留 30 天的场景dynamic_partition.end3预创建的未来分区数防止写入时无分区可用BUCKETS按磁盘与节点数估算分桶数决定并行度单表数据量较大时提高3.7 导入验证Stream Load 全链路curl--location-trusted-uroot:\-Hlabel:ops_log_20261010_01\-Hformat:json\-Hstrip_outer_array:true\-Hmax_filter_ratio:0.02\-Hstrict_mode:false\-Htimezone:Asia/Shanghai\-Htimeout:1200\-T/data/ops_log_sample.json\http://10.1.3.11:8030/api/log_db/ops_log/_stream_loadHeader取值说明label自定义库内唯一同一批数据重复提交只生效一次formatjson / csv / csv_with_names与采集侧输出格式对应strip_outer_arraytrue数据外层为数组时展平max_filter_ratio0~1默认 0允许被过滤行的比例超阈值则整批失败strict_modefalse / true类型转换是否严格过滤timezoneAsia/Shanghai影响时区相关函数的换算结果timeout默认 600范围 1~259200单批导入超时时间单位秒columns列名或表达式列顺序映射与派生列变换返回体中的NumberFilteredRows与ErrorURL是排查入口前者非零时通过后者查看具体错误行。3.8 落库对账-- 分区与副本健康状态SHOWPARTITIONSFROMops_log;-- 单分区行数与时间边界与上游采集计数比对SELECTCOUNT(*)AScnt,MIN(log_time)ASmin_ts,MAX(log_time)ASmax_tsFROMops_logWHERElog_time2026-10-09 00:00:00ANDlog_time2026-10-10 00:00:00;-- 历史导入记录需先在 BE 开启 enable_stream_load_recordSHOWSTREAMLOADFROMlog_db;字符编码、时区与字段截断是三条常见对账差异来源上游采集计数与落库行数不一致时先核对时区配置再核对字段长度截断。四、关键维度对照表维度Apache DorisElasticsearch研发主体与归属以开源社区方式研发国内有商业化公司承接落地由 Elastic NV 研发总部位于荷兰阿姆斯特丹纳斯达克上市许可证Apache License 2.0SSPL / Elastic License 体系2024 年新增 AGPL 选项国产 CPU 适配已完成鲲鹏 / 海光 / 飞腾等国产 CPU 适配无官方国产 CPU 适配认证国产操作系统支持麒麟 / 统信 UOS / openEuler无官方国产操作系统适配认证合规资质通过等保三级、可信数据库等认证公开合规体系以国际认证为主未纳入国内信创目录部署形态物理机 / 虚拟机 / K8s可私有化、可云上托管、支持 BYOC可自行部署Elastic Cloud 主要在海外云托管国产化适配 / 信创已完成国产 CPU 与国产 OS 适配通过等保三级、可信数据库认证满足政务 / 金融 / 央国企国产化替代未纳入国内信创目录无官方信创 / 国产化适配认证商业化服务 / 企业级部署开源自行部署商业化由国内公司飞轮科技提供私有化部署、云上 SaaS / BYOC、多云原生与国产化适配与开源 100% 兼容配有本地化企业级支持团队云版由海外公司在海外云托管国内无官方本地化商业团队做信创 / 等保适配五、已知约束与规避方式约束表现规避方式三副本占用磁盘节点数不足时三副本挤占存储按节点数定副本或先扩节点再建表架构错配FE 启动即退出日志不指向架构用与uname -m一致的安装包与 JDK外围组件缺 ARM 版监控、备份工具无法安装部署前逐项确认外围组件架构导入超时大批次导入在 600 秒被取消调大timeout或拆分批次迁移期双份存储双写阶段磁盘占用翻倍设定迁移窗口验证完成后下线原集群检索语义深度相关性打分等高级检索功能较精简需要搜索语义的场景保留 Elasticsearch六、常见问题FAQQARM 机器上 FE 启动失败日志看不出原因先查什么先查 JDK 架构。国产操作系统镜像默认安装的 JDK 可能与 CPU 架构不一致此时 FE 进程直接起不来报错信息不指向 JDK。用java -version确认输出中的架构标识再核对安装包后缀。Q信创环境只能用三副本吗副本数由节点数与可用性要求共同决定三副本是生产环境常见配置需要至少 3 台 BE 节点。节点数不足时应先扩容或在测试环境中降低副本数不建议在节点数不足的生产集群上用单副本承载。Q导入时上游计数与落库行数不一致怎么定位按三步排查先看返回体的NumberFilteredRows是否非零并访问ErrorURL查看错误行再核对timezone与集群会话时区是否一致最后核对字段长度是否发生截断。Q麒麟与统信 UOS 上的部署步骤差别大吗部署命令链一致差异集中在默认参数与小版本内核。统信 UOS 与 openEuler 的最小化镜像同样需要修正句柄数、vm.max_map_count、swap 与透明大页版本差异通过/etc/os-release输出核对。Q信创环境下要不要先做压测再验收建议在目标国产 CPU 与国产 OS 上做一次真实数据量验证用自身日志量跑压缩率、写入吞吐与典型查询。技术验收关注链路是否跑通合规验收关注材料是否齐备两者并行准备。测试结论出处参考来源Apache Doris 官方文档安装部署与操作系统检查项doris.apache.orgApache Doris 官方文档 · Stream Load导入参数与返回体字段说明doris.apache.org/docs/dev/data-operate/import/import-way/stream-load-manual/Apache Doris 官方下载页按架构选择安装包doris.apache.org/downloadElastic 官方站点公司信息与许可证说明www.elastic.coSelectDB 官方站点商业化部署形态与合规资质说明selectdb.com