Ort*_*kni 14 macos elasticsearch docker apple-silicon
为了开发应用程序,我需要在 Apple Silicon Mac 上运行 Elasticsearch 6。
我尝试用 Docker 运行它。阅读Docker Desktop for Apple Silicon,我安装了 Rosetta2:
softwareupdate --install-rosetta
Run Code Online (Sandbox Code Playgroud)
并添加了--platform linux/amd64
命令行选项。
跑步:
docker run -d --platform linux/amd64 --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.8.18
Run Code Online (Sandbox Code Playgroud)
OpenJDK 64-Bit Server VM warning: UseAVX=2 is not supported on this CPU, setting it to UseAVX=0
Run Code Online (Sandbox Code Playgroud)
所以我添加了命令行选项 : -e "ES_JAVA_OPTS=-XX:UseAVX=0"
,但我仍然得到:
[2021-08-22T00:06:20,727][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: 131, 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: 131, 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: 131, 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: 131, 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
Run Code Online (Sandbox Code Playgroud)
然后我查看Elasticsearchedit 中的机器学习设置 ,其中指出:
机器学习使用SSE4.2指令,因此它仅适用于CPU支持SSE4.2的机器。如果您在较旧的硬件上运行 Elasticsearch,则必须禁用机器学习(通过将 xpack.ml.enabled 设置为 false)。
所以我添加了命令行选项:-e"xpack.ml.enabled=false"
,Elasticsearch 现在启动,但日志中没有显示任何内容,并且它不响应请求。
我的问题是:如何在 Apple Silicon Mac 上运行 Elasticsearch 6?
Use*_*716 10
我刚刚遇到这个问题,我发现你可以使用这里的curl指令运行elasticsearch ,但想使用docker。
\n如果您想使用我的图像,请继续:
\ndocker run -p 9200:9200 -p 9300:9300 tompreston377/elasticsearch\n
Run Code Online (Sandbox Code Playgroud)\n为了制作这个图像,我组织了这样的文件:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Dockerfile-elastic\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 elasticsearch.yml\n
Run Code Online (Sandbox Code Playgroud)\nDockerfile:
\n# Dockerfile-elastic.yml\nFROM arm64v8/openjdk:8-jdk-buster\n\nWORKDIR /usr\n\n# add a non root user\nRUN useradd -m elasticuser\n\n# Download extras\nRUN apt update\nRUN apt install -y curl nano\n\n# Download elasticsearch\nRUN curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.23.tar.gz\nRUN tar -xvf elasticsearch-6.8.23.tar.gz\n\n# Add config\nADD elasticsearch.yml /usr/elasticsearch-6.8.23/config/elasticsearch.yml\n\nRUN chown -R elasticuser: .\nUSER elasticuser\n\nENV JAVA_HOME=/usr/local/openjdk-18/bin/java\nENV discovery.type=single-node\nENV xpack.security.enabled: false\nENV xpack.ml.enabled: false\n\nRUN cd elasticsearch-6.8.23/bin\nRUN chown -R elasticuser: elasticsearch-6.8.23\n\nEXPOSE 9200 9300\nCMD cd /usr/elasticsearch-6.8.23/bin/ && ./elasticsearch\n
Run Code Online (Sandbox Code Playgroud)\n弹性搜索.yml:
\n# elasticsearch.yml\nxpack.security.enabled: false\nxpack.ml.enabled: false\n\nhttp.host: 0.0.0.0\ntransport.host: 0.0.0.0\n
Run Code Online (Sandbox Code Playgroud)\n命令:
\n建造:docker build -f Dockerfile-elastic -t elastic .
跑步:docker run -p 9200:9200 -p 9300:9300 elastic
这通常不受支持,但有报告称https://hub.docker.com/r/webhippie/elasticsearch/可能有效。
如果您还没有充分的理由升级,也许在 M1 上运行它可能会有所帮助?7.12 中添加了本机支持(不含 Rosetta)。
归档时间: |
|
查看次数: |
12161 次 |
最近记录: |