解决在Homebrew上启动Elasticsearch 7.5.1时出现的错误
因为在参考下面的内容安装elasticsearch时遇到了一些问题,所以我记录了下来作为备忘。
elasticsearch官方的安装页面。
运行elasticsearch后会以以下错误结束。
$ elasticsearch -V
Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]
output:
[0.002s][error][logging] Error opening log file 'logs/gc.log': No such file or directory
[0.002s][error][logging] Initialization of output 'file=logs/gc.log' using options 'filecount=32,filesize=64m' failed.
error:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Invalid -Xlog option '-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m', see error log for details.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:111)
at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:79)
at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:57)
at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:89)
要解决这个问题,可以通过将以下文件的相应路径改写为绝对路径来解决。
/usr/local/etc/elasticsearch/jvm.options
以下是一个可能的中文翻译:
这一行↓
# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
这个需要进行修正。
# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/usr/local/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m
2020年1月13日更新
我本以为这样会顺利运行,但事实证明并没有运行。
$ elasticsearch -d
当启动守护进程后
1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
上述的错误导致无法正常运行。
看起来 discovery.seed_hosts 的设置是必需的。
shell会话
usr/local/etc/elasticsearch/elasticsearch.yml
我在加入以下设置后成功启动了,但我觉得我还需要做更多的调查。
network.bind_host: 0
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
2020年1月13日附注 第2部分
后来,我还是没有运行起来,所以做了很多调查,结果发现只需删除以下设置文件相关内容,然后重新安装就可以顺利运行了。可能之前的版本的设置文件还存在着呢。真是太不好意思了…
/usr/local/etc/elasticsearch
/usr/local/etc/kibana
/usr/local/etc/logstash