无法在Mac上启动ElasticSearch

时间:2019-03-31 04:00:50

标签: elasticsearch

我由elasticsearch安装了brew install elasticsearch,并从brew services start elasticsearch开始,但是curl http://127.0.0.1:9200显示connection refused。我检查了端口:netstat -a -n | grep tcp | grep 9200,其中一些ipv4正在那里运行。好的,所以我打开了/usr/local/etc/elasticsearch/elasticsearch.yml,并将端口更改为9300,并且也未进行注释和更改:network.host: 127.0.0.1。当我执行connection refused时仍显示curl http://127.0.0.1:9300OSMacOS High Sierra 10.13.4。如果我们打开/usr/local/var/log/elasticsearch/elasticsearch_nikitavlasenko.log,则错误似乎是:

  

数据路径[/ usr / local / var / lib / elasticsearch / elasticsearch_nikitavlasenko]中存在群集名称[elasticsearch_nikitavlasenko]子目录。这些路径下的所有数据必须在一个目录中上移到路径[/ usr / local / var / lib / elasticsearch]

4 个答案:

答案 0 :(得分:8)

您之前是否安装了旧版本(2.x或更早版本)?听起来很像这个PR to check that you're not using the old behavior when there was the node name in the path

我会做什么:

  • 如果您不再需要数据,只需删除/usr/local/var/lib/elasticsearch/elasticsearch_nikitavlasenko并重新开始。
  • 如果您需要数据,则可以在配置中更改path.data或将文件夹上移一级(就像日志消息所述)。

PS:我不会将端口9300用于HTTP,因为通常这是用于集群本身中节点通信的端口。

答案 1 :(得分:2)

一段时间后就遇到了这个问题,请添加一个最小的Elastic配置文件。对我来说看起来像下面

http.port: 9200
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

path.data: /usr/local/var/elasticsearch/
path.logs: /usr/local/var/log/elasticsearch/
# Set both 'bind_host' and 'publish_host':
network.host: 127.0.0.1

# 1. Disable multicast discovery (enabled by default):
discovery.zen.ping.multicast.enabled: false
script.engine.groovy.inline.aggs: on

我认为我没有使用引起问题的以下配置:

network.host: 127.0.0.1

请检查其是否在您的配置中?还要正确设置数据和日志文件夹路径。

如果您遇到任何问题并对这些配置有疑问,请告诉我。

答案 2 :(得分:1)

这是Elasticsearch的Homebrew公式错误的结果。它正在创建一个目录,该目录的名称不再是Elasticsearch所允许的。

该公式已更新,可以从path.data中删除节点名称,并且不再创建可以解决此问题的无效目录。

答案 3 :(得分:0)

感谢,这是一个重要的帮助,因为它现在可以正常工作了。