You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARM架构下Apache Druid Docker镜像构建及运行问题咨询

M1 Mac ARM64架构运行Docker版Apache Druid问题解答

你遇到的两个问题核心原因都是官方26.0.0版本以前的Druid Docker镜像仅适配amd64架构,在M1 Mac上通过Rosetta 2转译运行导致的:

  • 退出码137本质是进程内存不足被OOM杀死,转译过程本身会产生额外30%以上的内存开销,且转译后的JVM进程内存占用远高于原生运行,调高Docker内存配额只是抵消了转译的额外消耗,没有解决根本问题
  • 运行效率低是Rosetta转译的固有损耗,Druid作为重计算、依赖JVM即时编译的服务,转译后性能损失普遍超过40%,启动慢、操作响应延迟都是转译后的正常表现

适配ARM64架构的解决方案

直接使用官方原生ARM64镜像

Apache Druid从26.0.0版本开始,官方已正式提供ARM64架构的Docker镜像,直接拉取对应版本的镜像即可原生运行,无需转译。

自行从源码构建ARM64镜像

如果需要使用26.0.0以下的版本,可以按照以下步骤自行构建:

  • 提前准备ARM64版本的JDK 11、Maven 3.6+及Docker Desktop for Mac,确保Docker默认运行架构为arm64
  • 拉取对应版本的Druid源码到本地,在源码根目录执行编译命令:
    mvn clean install -DskipTests -Pdist
  • 编译完成后进入distribution/docker目录,执行镜像构建:
    docker build -t druid:<你的版本号>-arm64 .
  • 替换原有集群部署配置中的镜像为你本地构建的镜像标签即可

额外优化建议

  • 原生ARM64镜像运行单节点模拟集群时,Docker仅需分配4GB内存即可稳定运行,无需分配8GB
  • 可根据节点角色调整JVM参数,常规单节点模拟集群可在common.runtime.properties中配置:-Xms2g -Xmx2g -XX:MaxDirectMemorySize=1g,Broker节点可适当将堆内存调整为3G
  • 集群的元数据、segment存储建议使用Docker Volume挂载,不要使用主机文件共享目录,避免IO损耗降低运行效率

内容的提问来源于stack exchange,提问作者Janson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:24:09