Elasticsearch: Не удалось выполнить задание упругого поиска - PullRequest
1 голос
/ 01 ноября 2019

Я сейчас пытаюсь настроить Elasticsearch для проекта. Я установил Elasticsearch 7.4.1, а также установил ** Java *, то есть openjdk 11.0.4.

Но когда я пытаюсь запустить ** Elasticsearch с помощью команды

sudo systemctl start elasticsearch

, я получаю ошибку ниже

Не удалось выполнить задание упругого поиска, поскольку элемент управленияпроцесс завершился с кодом ошибки.

Подробнее см. "systemctl statusasticsearch.service" и "journalctl -xe".

И когда я пытаюсь запустить команду

systemctl status elasticsearch.service

Я получаю сообщение об ошибке

●asticsearch.service - Elasticsearch

Загружен: загружен (/usr/lib/systemd/system/elasticsearch.service; отключен;vend

Активно: не удалось (Результат: код выхода) с пт 2019-11-01 06:09:54 UTC; 12 с назад

Docs: http://www.elastic.co

Процесс: 5960 ExecStart = / usr /share /asticsearch / bin /asticsearch -p $ {PID_DI

Основной PID: 5960 (код = выход, статус = 1 / НЕИСПРАВНОСТЬ)

Я удалил / очистил Elasticsearch с моей машины и переустановил несколько раз, но, похоже, это не решает проблему.

Я попытался изменить default network.host и host.port настройки в /etc/default/elasticsearch до network.host: 0.0.0.0 и http.port: 9200, чтобы исправить проблему, но пока не повезло.

Мне нужна помощь. Заранее спасибо.

1 Ответ

2 голосов
/ 01 ноября 2019

Вот как я решил

Во-первых, откройте /etc/elasticsearch/elasticsearch.yml в вашем редакторе nano, используя следующую команду:

sudo nano /etc/elasticsearch/elasticsearch.yml

Ваши сетевые настройки должны быть:

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 127.0.0.1
#
# Set a custom port for HTTP:
#
http.port: 9200

Чтобы Elasticsearch разрешил подключения с любого хоста, а также прослушивал порт 9200.

Далее, выполните приведенный ниже код, чтобы определитьпричина ошибки:

journalctl -xe

Ошибка 1

Недостаточно памяти для среды выполнения Java для продолжения

Решение

Откройте /etc/elasticsearch/jvm.options в своем редакторе nano, используя следующую команду:

sudo nano /etc/elasticsearch/jvm.options

Отмените комментирование значений Xmx и Xms

Итак, ваши настройки должны быть:

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms1g
-Xmx1g

Ошибка 2

начальный размер кучи не равен максимальному размеру кучи

Решение

Откройте /etc/elasticsearch/jvm.options в вашем нано-редакторе, используя следующую команду:

sudo nano /etc/elasticsearch/jvm.options

Измените значения Xmx и Xms не более 50% вашей физической памяти. Значение этих параметров зависит от объема оперативной памяти, доступной на вашем сервере, и Elasticsearch требует памяти для целей, отличных от кучи JVM, и важно оставить для этого место.

Если ваша физическая память составляет <= 1 ГБ </strong>

Тогда ваши настройки должны быть такими:

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms128m
-Xmx128m

Если ваша физическая RAM составляет > = 1 ГБ

Тогда ваши настройки должны быть:

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms1g
-Xmx1g

Ошибка 3

настройки обнаружения по умолчанию не подходят для производственного использования;по крайней мере один из [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] должен быть настроен

Решение

Открыть /etc/elasticsearch/elasticsearch.yml в вашем нано-редактореиспользуя следующую команду:

sudo nano /etc/elasticsearch/elasticsearch.yml

Ваши параметры обнаружения должны быть такими:

# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: []

Как только все ошибки будут исправлены, выполните команду ниже, чтобы запустить и подтвердить состояние Elasticsearch:

sudo systemctl start elasticsearch
sudo systemctl status elasticsearch

Вот и все.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...