Homebrew:无法启动弹性搜索

问题描述:

我遇到了很大的麻烦,我无法启动Elasticsearch,我需要它来在本地运行我的导轨,请告诉我发生了什么事情。我以正常方式安装Elasticsearch然后我做了以下内容:Homebrew:无法启动弹性搜索

elasticsearch --config=/usr/local/opt/elasticsearch/config/elasticsearch.yml 

但它显示了以下错误:[2015-11-01 20:36:50,574][INFO ][bootstrap] es.config is no longer supported. elasticsearch.yml must be placed in the config directory and cannot be renamed.

我试图运行它的几种可供选择的方法,如:

elasticsearch -f -D 

但后来我得到以下错误,我找不到任何有用的解决它,它似乎与文件烫发有关但不知道:

java.io.IOException: Resource not found: "org/joda/time/tz/data/ZoneInfoMap" ClassLoader: [email protected] 
    at org.joda.time.tz.ZoneInfoProvider.openResource(ZoneInfoProvider.java:210) 
    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:127) 
    at org.joda.time.tz.ZoneInfoProvider.<init>(ZoneInfoProvider.java:86) 
    at org.joda.time.DateTimeZone.getDefaultProvider(DateTimeZone.java:514) 
    at org.joda.time.DateTimeZone.getProvider(DateTimeZone.java:413) 
    at org.joda.time.DateTimeZone.forID(DateTimeZone.java:216) 
    at org.joda.time.DateTimeZone.getDefault(DateTimeZone.java:151) 
    at org.joda.time.chrono.ISOChronology.getInstance(ISOChronology.java:79) 
    at org.joda.time.DateTimeUtils.getChronology(DateTimeUtils.java:266) 
    at org.joda.time.format.DateTimeFormatter.selectChronology(DateTimeFormatter.java:968) 
    at org.joda.time.format.DateTimeFormatter.printTo(DateTimeFormatter.java:672) 
    at org.joda.time.format.DateTimeFormatter.printTo(DateTimeFormatter.java:560) 
    at org.joda.time.format.DateTimeFormatter.print(DateTimeFormatter.java:644) 
    at org.elasticsearch.Build.<clinit>(Build.java:51) 
    at org.elasticsearch.node.Node.<init>(Node.java:135) 
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145) 
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) 
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) 
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
[2015-11-01 20:40:57,602][INFO ][node      ] [Centurius] version[2.0.0], pid[22063], build[de54438/2015-10-22T08:09:48Z] 
[2015-11-01 20:40:57,605][INFO ][node      ] [Centurius] initializing ... 
Exception in thread "main" java.lang.IllegalStateException: failed to load bundle [] due to jar hell 
Likely root cause: java.security.AccessControlException: access denied ("java.io.FilePermission" "/usr/local/Cellar/elasticsearch/2.0.0/libexec/antlr-runtime-3.5.jar" "read") 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) 
    at java.security.AccessController.checkPermission(AccessController.java:884) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888) 
    at java.util.zip.ZipFile.<init>(ZipFile.java:210) 
    at java.util.zip.ZipFile.<init>(ZipFile.java:149) 
    at java.util.jar.JarFile.<init>(JarFile.java:166) 
    at java.util.jar.JarFile.<init>(JarFile.java:103) 
    at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:173) 
    at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:340) 
    at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:113) 
    at org.elasticsearch.node.Node.<init>(Node.java:144) 
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145) 
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) 
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) 
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
Refer to the log for complete error details. 

感谢您的帮助。

+0

你能解释一下你安装ES的步骤吗?既然你提到了自制软件,你能展示你在安装过程中得到的输出吗?如果你只是在没有任何开关的情况下运行'bin/elasticsearch'会怎么样? – Val

+0

嗨,它似乎是弹性搜索的最后2.0.0版本的问题https://github.com/elastic/elasticsearch/issues/14424#issuecomment-152902693我降级到1.4版本,现在一切正常工作... – SsouLlesS

+0

虽然1.4很老,但如果可能的话,应该使用1.7.3。 – Val

Elasticsearch/homebrew安装中libexec有一些变化,这就是为什么它无法启动。目前正在进行PR #45644。直到PR被接受,您可以使用相同的公式来修复Elasticsearch的安装。

首先卸载早期/旧版本。然后编辑Elasticsearch的公式:

$ brew edit elasticsearch 

而且从PR使用formula

然后做brew install elasticsearch,它应该工作正常。

要开始Elasticsearch,只是做:

$ elasticsearch 

config选项不再有效。对于自定义配置,请使用path.config

$ elasticsearch --path.conf=/usr/local/opt/elasticsearch/config