Apple M1芯片MacBook安装Elasticsearch 6.8.15相关问题咨询
M1芯片Mac安装Elasticsearch 6.8.15解决方案
错误根因
- Docker启动报错:拉取的是amd64架构镜像,x-pack-ml模块内置的x86架构二进制文件无法在ARM转译环境下正常执行,触发fork调用失败报错
- Brew安装报
no bottle available:当前使用的是ARM原生版本Homebrew,官方未提供elasticsearch@6的arm64预编译包;同事可正常安装是因为其使用的是通过Rosetta2运行的x86_64版本Homebrew,对应预编译包可用
解决方案
方案一:使用Rosetta2转译的x86版本Homebrew安装
此方案和你同事的安装逻辑一致,可完全还原其运行环境
- 执行命令进入x86架构终端会话:
arch -x86_64 zsh
- 验证当前架构,输出为
i386即为生效:
arch
- 安装适配的JDK版本:
brew install homebrew/cask-versions/adoptopenjdk8
- 安装Elasticsearch 6.8版本:
brew install elasticsearch@6
- 启动后台服务:
brew services start elasticsearch@6
- 验证启动成功,执行命令后返回包含版本信息的JSON即可:
curl http://localhost:9200
方案二:Docker适配启动
无需安装额外依赖,通过参数禁用不兼容模块即可正常运行
- 执行启动命令,指定镜像架构并关闭x-pack机器学习模块:
docker run -d \ --name es6.8.15 \ --platform linux/amd64 \ -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e "xpack.ml.enabled=false" \ docker.elastic.co/elasticsearch/elasticsearch:6.8.15
- 同方案一的第6步验证启动结果即可,启动过程中的AVX警告不影响正常功能,可忽略
方案三:手动修改配置启动官方安装包
不需要依赖Homebrew或Docker,适合需要自定义配置的场景
- 下载Elasticsearch 6.8.15官方tar包,解压到本地任意目录
- 打开
config/elasticsearch.yml配置文件,添加以下配置禁用不兼容模块:
xpack.ml.enabled: false
- 配置本地JAVA_HOME环境变量为ARM64适配的JDK8路径
- 执行
bin/elasticsearch命令启动服务,按方案一第6步验证即可
注意事项
- 以上方案禁用x-pack-ml模块仅会关闭机器学习相关功能,不影响Elasticsearch的核心搜索、聚合、索引等能力
- 若必须使用x-pack机器学习功能,建议升级到Elasticsearch 7.17及以上版本,官方已原生支持ARM64架构,不需要转译即可正常运行
内容的提问来源于stack exchange,提问作者user16579757
相关产品推荐
相关产品推荐

