我正在尝试为我当前的项目下载elasticsearch 6.8.15。我使用的是2020款搭载M1芯片的Macbook air,并尝试使用brew和docker镜像进行下载,但每当我尝试运行elasticsearch时,都会遇到一些问题。
首先,由于M1芯片的原因,一些java设置似乎被调整了,并显示以下警告:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
OpenJDK 64-Bit Server VM warning: UseAVX=2 is not supported on this CPU, setting it to UseAVX=0然后我得到这个输出,它似乎是java和elasticsearch错误的混合:
[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] uncaught exception in thread [main] org.elasticsearch.bootstrap.StartupException: org.elasticsearch.bootstrap.BootstrapException: java.io.IOException: Cannot run program "/usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller": error=0, Failed to exec spawn helper: pid: 129, exit value: 1 at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.8.18.jar:6.8.18] at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.8.18.jar:6.8.18] Caused by: org.elasticsearch.bootstrap.BootstrapException: java.io.IOException: Cannot run program "/usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller": error=0, Failed to exec spawn helper: pid: 129, exit value: 1 at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:167) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.8.18.jar:6.8.18] ... 6 more Caused by: java.io.IOException: Cannot run program "/usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller": error=0, Failed to exec spawn helper: pid: 129, exit value: 1 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1142) ~[?:?] at java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[?:?] at org.elasticsearch.bootstrap.Spawner.spawnNativeController(Spawner.java:118) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:86) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:165) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.8.18.jar:6.8.18] ... 6 more Caused by: java.io.IOException: error=0, Failed to exec spawn helper: pid: 129, exit value: 1 at java.lang.ProcessImpl.forkAndExec(Native Method) ~[?:?] at java.lang.ProcessImpl.<init>(ProcessImpl.java:313) ~[?:?] at java.lang.ProcessImpl.start(ProcessImpl.java:244) ~[?:?] at java.lang.ProcessBuilder.start(ProcessBuilder.java:1109) ~[?:?] at java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[?:?] at org.elasticsearch.bootstrap.Spawner.spawnNativeController(Spawner.java:118) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:86) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:165) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.8.18.jar:6.8.18] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.8.18.jar:6.8.18] ... 6 more我与我的团队中的一些人交谈过,他们拥有一台带有M1芯片的macbook,能够使用brew安装和运行elasticsearch。他们运行的命令是:
$ brew cask install homebrew/cask-versions/adoptopenjdk8
$ brew install elasticsearch@6
$ brew services start elasticsearch@6这些命令在他们的机器上工作得很好,但当我运行这个命令时,我得到了这样的消息:
Error: elasticsearch@6: no bottle available!
You can try to install from source with:
brew install --build-from-source elasticsearch@6
Please note building from source is unsupported. You will encounter build
failures with some formulae. If you experience any issues please create pull
requests instead of asking for help on Homebrew's GitHub, Twitter or any other
official channels.发布于 2021-08-31 02:39:53
找到了elasticsearch 7的解决方案。
brew tap elastic/tap
brew install elastic/tap/elasticsearch-full来源:https://github.com/Homebrew/discussions/discussions/925#discussioncomment-943622
发布于 2021-11-20 10:25:16
elasticsearch@6是一个homebrew-core包。通过depends_on "openjdk",jdk依赖也被限制在由homebrew-core分发的openjdk上。在自制软件之外安装JDK没有任何效果。
问题是homebrew-core的openjdk还没有为arm64构建。但当我回答这个问题时,openjdk似乎已经得到了支持。
brew install elasticsearch@6现在应该可以工作了。
扩展阅读
对于任何寻找elasticsearch 7.x的人。2021年,情况还没有改变。
Homebrew停止分发更新版本的elasticsearch和kibana,尽管你仍然可以在homebrew-core中获得过时的版本。
这是因为Homebrew遵循OSI的开源许可定义,而elastic软件使用的新许可与它不兼容。因此,elastic开始使用自己定制的tap分发这些软件。
# tap maintained by elastic organization
# https://github.com/elastic/homebrew-tap
brew tap elastic/tap
brew install elastic/tap/elasticsearch-full
# brew install elastic/tap/kibina-full
# brew install elastic/tap/logstash-fullhttps://stackoverflow.com/questions/68957318
复制相似问题