#elasticsearch
#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
и там работает some ipv4
. Хорошо, итак, я открыл /usr/local/etc/elasticsearch/elasticsearch.yml
и изменил порт на 9300
, а также раскомментировал и изменил: network.host: 127.0.0.1
. Все еще показывает, connection refused
когда я это делаю curl http://127.0.0.1:9300
. OS
Это MacOS High Sierra 10.13.4
. Если мы откроем /usr/local/var/log/elasticsearch/elasticsearch_nikitavlasenko.log
, ошибка, похоже,:
Подкаталог с именем кластера [elasticsearch_nikitavlasenko] существует в путях к данным [/usr/local/var /lib/elasticsearch /elasticsearch_nikitavlasenko]. Все данные по этим путям должны быть перемещены вверх по одному каталогу в пути [/usr/local/var / lib /elasticsearch]
Комментарии:
1. Нет, определенно нет. Пожалуйста, прочтите первую строку
curl http://localhost:9200 it is working fine.
В моем случае этого никогда не происходило. Кроме того, как вы можете видеть из моего вопроса, я уже пробовал устанавливатьnetwork.host
2. какую версию ES вы используете? также можете ли вы предоставить содержимое вашего
elasticsearch.yml
3. смогли ли вы устранить проблему?
4. Пока нет, собираюсь опробовать это в ближайшее время.
Ответ №1:
Была ли у вас ранее установлена более старая версия (2.x или более ранняя)? Это звучит очень похоже на этот запрос, чтобы проверить, что вы не используете старое поведение, когда в пути было имя узла.
Что бы я сделал:
- Если вам больше не нужны данные, просто удалите
/usr/local/var/lib/elasticsearch/elasticsearch_nikitavlasenko
и начните заново. - Если вам нужны данные, вы можете либо изменить
path.data
в своей конфигурации, либо переместить папку на один уровень выше (точно так же, как указано в сообщении журнала).
PS: Я бы не стал использовать порт 9300 для HTTP, потому что обычно это порт, используемый для связи узлов в самом кластере.
Комментарии:
1. У меня только что была такая же проблема. Оказывается, что конфигурационный файл указывает на
/usr/local/var/lib/elasticsearch
путь к данным, но пакет создает каталог/usr/local/var/lib/elasticsearch/elasticsearch_USERNAME
. Поскольку этотelasticsearch_USERNAME
каталог находится там, он не запускается. Я устранил ошибку, просто удаливelasticsearch_USERNAME
каталог, как вы предложили.
Ответ №2:
Это было результатом ошибки в формуле Homebrew для Elasticsearch. Это создавало каталог с именем узла, которое больше не разрешено для Elasticsearch.
Формула была обновлена, чтобы удалить имя узла из path.data и больше не создавать недопустимый каталог, который должен решить эту проблему.
Ответ №3:
Некоторое время назад столкнулся с этой проблемой, пожалуйста, добавьте минимальный конфигурационный файл 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
Пожалуйста, проверьте, есть ли это в вашей конфигурации? Также правильно укажите путь к папке с вашими данными и журналами.
Дайте мне знать, если у вас возникнут какие-либо проблемы и возникнут вопросы по этим конфигурациям.