无法在我的机器中启动 ElasticSearch,执行 elasticsearch.bat 时发生 StartupException
Posted
技术标签:
【中文标题】无法在我的机器中启动 ElasticSearch,执行 elasticsearch.bat 时发生 StartupException【英文标题】:Unable to start ElasticSearch in my machine, StartupException is occuring while executing elasticsearch.bat 【发布时间】:2019-10-01 05:37:32 【问题描述】:我需要在 elasticSearch 上工作,我已经从授权网站下载了 elasticsearch-6.7.2,但是在尝试启动 ElasticSearch 服务器并执行elasticsearch.bat
文件时,我收到以下错误:
org.elasticsearch.bootstrap.StartupException: ElasticsearchException[X-Pack is not supported and Machine Learning is not available for [windows-x86];您可以通过在 elasticsearch.yml 中设置 xpack.ml.enabled: false 来使用其他 X-Pack 功能(不支持)] 在 org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.7.2.jar:6.7.2] 在 org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.7.2.jar:6.7.2] 原因:org.elasticsearch.ElasticsearchException: X-Pack is not supported and Machine Learning is not available for [windows-x86];您可以通过在 elasticsearch.yml 中设置 xpack.ml.enabled: false 来使用其他 X-Pack 功能(不支持) 在 org.elasticsearch.xpack.ml.MachineLearningFeatureSet.isRunningOnMlPlatform(MachineLearningFeatureSet.java:107) ~[?:?] 在 org.elasticsearch.xpack.ml.MachineLearningFeatureSet.isRunningOnMlPlatform(MachineLearningFeatureSet.java:98) ~[?:?] 在 org.elasticsearch.xpack.ml.MachineLearning.createComponents(MachineLearning.java:413) ~[?:?] 在 org.elasticsearch.node.Node.lambda$new$11(Node.java:472) ~[elasticsearch-6.7.2.jar:6.7.2] 在 java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[?:1.8.0_211] 在 java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:1.8.0_211] 在 java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:1.8.0_211] 在 java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:1.8.0_211] 在 java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:1.8.0_211] 在 java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:1.8.0_211] 在 java.util.stream.ReferencePipeline.collect(未知来源)~[?:1.8.0_211] 在 org.elasticsearch.node.Node.(Node.java:475) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.node.Node.(Node.java:266) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:212) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:212) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.7.2.jar:6.7.2] 在 org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.7.2.jar:6.7.2] ... 6 更多
【问题讨论】:
【参考方案1】:转到 ElasticSearch 目录:
C:\elasticsearch-6.7.2\config
将以下条目放入您的elasticsearch.yml
:
xpack.ml.enabled: false
【讨论】:
【参考方案2】:错误信息非常直接。 X-Pack 不支持且机器学习不适用于 windows-x86,因此它与您的操作系统不兼容。
原因是不支持 32 位架构。如果你碰巧有一个 64 位系统操作系统,那么其他东西会让它认为你正在使用 32 位环境。检查您的 JVM 并查看它是否为 32 位。如果是 32 位,那就是问题所在。
根据来自 elasticsearch docs 的以下警告,它也可能是由不受支持的 CPU 引起的。在这种情况下,您可以通过将xpack.ml.enabled: false
添加到elasticsearch.yml
来禁用该选项。
【讨论】:
感谢您的见解,但我刚刚通过禁用 ML 解决了这个问题 @AkashRoy 当且仅当您不想使用机器学习时,这是一个解决方案。如果您不想限制自己,可以确保它是 64 位 env。 如果java --version
有以下输出,可能的过程是什么? openjdk 11.0.11 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
【参考方案3】:
我得到的日志:
Failure running machine learning native code. This could be due to running on an unsupported OS or distribution, missing OS libraries, or a problem with the temp directory. To bypass this problem by running Elasticsearch without machine learning functionality set [xpack.ml.enabled: false].]
在给定的组合上测试:
macOS:Catalina,版本:10.15.4 Java 版本:11.0.4 弹性版本:7.6.2可能的解决方法是在elasticsearch.yml
文件中设置x-pack-ml.enabled: false
。
更多详情请点击here
【讨论】:
以上是关于无法在我的机器中启动 ElasticSearch,执行 elasticsearch.bat 时发生 StartupException的主要内容,如果未能解决你的问题,请参考以下文章
M1 Mac - 启动 ElasticSearch 的问题。无法运行 jdk/bin/java
Discord.js 无法永远在服务器上使用 process.env 启动机器人,但它可以通过 Visual Studio 在我的本地驱动器上正常工作
程序无法启动 - API-MS-WIN-CORE ???。DLL