Плагины ElasticSearch: не удалось устранить ошибку пути конфигурации

Я устанавливаю elasticsearch 1.7.3 на Debian Jessie. Он использует файлы конфигурации по умолчанию и работает нормально. Но когда я вызываю sudo /usr/share/elasticsearch/bin/plugin, он возвращает ошибку:

Exception in thread "main" org.elasticsearch.env.FailedToResolveConfigException: Failed to resolve config path ["/usr/share/elasticsearch/config/elasticsearch.yml"], tried file path ["/usr/share/elasticsearch/config/elasticsearch.yml"], path file ["/usr/share/elasticsearch/config"/"/usr/share/elasticsearch/config/elasticsearch.yml"], and classpath
        at org.elasticsearch.env.Environment.resolveConfig(Environment.java:291)
        at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:95)
        at org.elasticsearch.plugins.PluginManager.main(PluginManager.java:396)

Файл /usr/share/elasticsearch/config/elasticsearch.yml существует и я могу открыть его в nano.

Есть файл /etc/default/elasticsearch:

# Start Elasticsearch automatically
START_DAEMON=true

# Run Elasticsearch as this user ID and group ID
#ES_USER=elasticsearch
#ES_GROUP=elasticsearch

# Heap Size (defaults to 256m min, 1g max)
#ES_HEAP_SIZE=2g

# Heap new generation
#ES_HEAP_NEWSIZE=

# max direct memory
#ES_DIRECT_SIZE=

# Maximum number of open files, defaults to 65535.
#MAX_OPEN_FILES=65535

# Maximum locked memory size. Set to "unlimited" if you use the
# bootstrap.mlockall option in elasticsearch.yml. You must also set
# ES_HEAP_SIZE.
#MAX_LOCKED_MEMORY=unlimited

# Maximum number of VMA (Virtual Memory Areas) a process can own
#MAX_MAP_COUNT=262144

# Elasticsearch log directory
#LOG_DIR=/var/log/elasticsearch

# Elasticsearch data directory
#DATA_DIR=/var/lib/elasticsearch

# Elasticsearch work directory
#WORK_DIR=/tmp/elasticsearch

# Elasticsearch configuration directory
#CONF_DIR=/etc/elasticsearch

# Elasticsearch configuration file (elasticsearch.yml)
#CONF_FILE=/etc/elasticsearch/elasticsearch.yml

# Additional Java OPTS
#ES_JAVA_OPTS=

# Configure restart on package upgrade (true, every other setting will lead to not restarting)
#RESTART_ON_UPGRADE=true

В файлах /var/log/elasticsearch/elasticsearch.log и /var/log/elasticsearch/elasticsearch.error нет записей.

Кто-нибудь знает, почему это может выйти из строя?


person Haru Atari    schedule 11.11.2015    source источник
comment
Пробовали ли вы сначала войти в /usr/share/elasticsearch, а затем вызвать bin/plugin?   -  person Val    schedule 12.11.2015
comment
@ Вал Да. Это был тот же результат.   -  person Haru Atari    schedule 12.11.2015
comment
У меня точно такая же проблема...   -  person fccoelho    schedule 11.12.2015
comment
@ fccoelho Я решил эту проблему путем взлома. Смотрите мой ответ.   -  person Haru Atari    schedule 11.12.2015


Ответы (4)


Это не решение вопроса. Но я решил свою проблему.

Скрипт в /usr/share/elasticsearch/bin/plugin сгенерирует bash-команду и запустит ее. Я редактировал этот файл. Он напечатал эту команду echo вместо ее запуска. Я скопировал эту команду и запустил ее из кустового терминала. И запустилось правильно.

Я не знаю почему, но это работает. Может быть, это будет полезно для кого-то.

person Haru Atari    schedule 11.12.2015
comment
Некоторая проблема с classpath, но этот принятый ответ работает. Благодарю вас! - person redDevil; 16.07.2016
comment
вы можете опубликовать, что именно вы сделали? Я имею в виду сами команды. - person Almaron; 20.07.2016
comment
отредактируйте /usr/share/elasticsearch/bin/plugin, в последней строке измените exec на echo. - person Daniel P; 24.08.2016
comment
Вы можете добавить ` | /bin/bash` в конец, если вы не хотите копировать/вставлять команду для ее запуска: это передает команду в bash. - person toon81; 06.01.2017

Я тоже застрял с той же проблемой — 2016 год, сентябрь. Как оказалось, эта проблема возникает со старой версией эластичного поиска (например, 1.7.3), которая находится в репозиториях для Ubuntu. Используйте текущую версию (которая в любом случае рекомендуется), и вы не должны получить эту ошибку.

Чтобы установить текущую версию (это версия 2.4), следуйте эти шаги:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list

sudo apt-get update && sudo apt-get install elasticsearch
person Maurice Müller    schedule 05.09.2016

Эти изменения исправили проблему для меня:

--- /usr/share/elasticsearch/bin/plugin 2015-12-24 05:14:52.000000000 +0000
+++ /usr/share/elasticsearch/bin/pluginfix  2018-04-21 22:54:49.547134959 +0000
@@ -79,7 +79,7 @@
       properties="$properties \"$var\"=\"$1\""
       ;;
     *)
-      args="$args \"$1\""
+      args="$args $1"
   esac
   shift
 done
@@ -90,7 +90,7 @@
     *-Des.default.path.conf=*|*-Des.path.conf=*)
     ;;
     *)
-      properties="$properties -Des.default.path.conf=\"$CONF_DIR\""
+      properties="$properties -Des.default.path.conf=$CONF_DIR"
     ;;
   esac
 fi
@@ -100,11 +100,11 @@
     *-Des.default.config=*|*-Des.config=*)
     ;;
     *)
-      properties="$properties -Des.default.config=\"$CONF_FILE\""
+      properties="$properties -Des.default.config=$CONF_FILE"
     ;;
   esac
 fi

 export HOSTNAME=`hostname -s`

-exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home=\""$ES_HOME"\" $properties -cp \""$ES_CLASSPATH"\" org.elasticsearch.plugins.PluginManager $args
+exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_CLASSPATH" org.elasticsearch.plugins.PluginManager $args

Обходной путь, опубликованный Виктором Пикаевым, по существу использует то же исправление. В результате копирования и вставки команды, которая будет выполняться сценарием, оболочка удаляет один уровень пар кавычек.

Об этой ошибке также сообщили в Ubuntu Debian (см. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=807596), но помечен как неисправимый, потому что:

... пакет elasticsearch только что был удален из нестабильного архива Debian ...

по состоянию на 11 марта 2018 года.

person Robrecht Dewaele    schedule 21.04.2018

Попробуйте этот шаг [работайте для меня]: 1. запустите elasticsearch
2. проверьте ps aux | grep elast
3. вы получите что-то вроде
elastic+ 12723 4.3 25.7 4623016 261176 ? Sl 13:27 0:22 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Delasticsearch -Des.pidfile=/var/run/elasticsearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/java/lucene-replicator-4.10.4.jar:/usr/share/java/lucene-facet-4.10.4.jar:/usr/share/java/lucene-analyzers-morfologik-4.10.4.jar:/usr/share/java/lucene-analyzers-kuromoji-4.10.4.jar:/usr/share/java/lucene-join-4.10.4.jar:/usr/share/java/lucene-suggest-4.10.4.jar:/usr/share/java/lucene-core-4.10.4.jar:/usr/share/java/log4j-1.2-1.2.17.jar:/usr/share/java/jts.jar:/usr/share/java/lucene-expressions-4.10.4.jar:/usr/share/java/spatial4j-0.4.1.jar:/usr/share/java/lucene-highlighter-4.10.4.jar:/usr/share/java/sigar.jar:/usr/share/java/lucene-memory-4.10.4.jar:/usr/share/java/lucene-analyzers-icu-4.10.4.jar:/usr/share/java/lucene-misc-4.10.4.jar:/usr/share/java/lucene-analyzers-smartcn-4.10.4.jar:/usr/share/java/lucene-benchmark-4.10.4.jar:/usr/share/java/lucene-analyzers-phonetic-4.10.4.jar:/usr/share/java/lucene-analyzers-uima-4.10.4.jar:/usr/share/java/lucene-sandbox-4.10.4.jar:/usr/share/java/lucene-classification-4.10.4.jar:/usr/share/java/elasticsearch-1.7.3.jar:/usr/share/java/groovy-all-2.x.jar:/usr/share/java/lucene-test-framework-4.10.4.jar:/usr/share/java/lucene-codecs-4.10.4.jar:/usr/share/java/lucene-queryparser-4.10.4.jar:/usr/share/java/apache-log4j-extras-1.2.17.jar:/usr/share/java/jna.jar:/usr/share/java/lucene-spatial-4.10.4.jar:/usr/share/java/lucene-queries-4.10.4.jar:/usr/share/java/lucene-analyzers-stempel-4.10.4.jar:/usr/share/java/lucene-analyzers-common-4.10.4.jar:/usr/share/java/lucene-demo-4.10.4.jar:/usr/share/java/lucene-grouping-4.10.4.jar: -Des.default.config=/etc/elasticsearch/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
4. теперь используйте /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Delasticsearch -Des.pidfile=/var/run/elasticsearch.pid -Des.path.home=/usr/share/elasticsearch -cp :/usr/share/java/lucene-replicator-4.10.4.jar:/usr/share/java/lucene-facet-4.10.4.jar:/usr/share/java/lucene-analyzers-morfologik-4.10.4.jar:/usr/share/java/lucene-analyzers-kuromoji-4.10.4.jar:/usr/share/java/lucene-join-4.10.4.jar:/usr/share/java/lucene-suggest-4.10.4.jar:/usr/share/java/lucene-core-4.10.4.jar:/usr/share/java/log4j-1.2-1.2.17.jar:/usr/share/java/jts.jar:/usr/share/java/lucene-expressions-4.10.4.jar:/usr/share/java/spatial4j-0.4.1.jar:/usr/share/java/lucene-highlighter-4.10.4.jar:/usr/share/java/sigar.jar:/usr/share/java/lucene-memory-4.10.4.jar:/usr/share/java/lucene-analyzers-icu-4.10.4.jar:/usr/share/java/lucene-misc-4.10.4.jar:/usr/share/java/lucene-analyzers-smartcn-4.10.4.jar:/usr/share/java/lucene-benchmark-4.10.4.jar:/usr/share/java/lucene-analyzers-phonetic-4.10.4.jar:/usr/share/java/lucene-analyzers-uima-4.10.4.jar:/usr/share/java/lucene-sandbox-4.10.4.jar:/usr/share/java/lucene-classification-4.10.4.jar:/usr/share/java/elasticsearch-1.7.3.jar:/usr/share/java/groovy-all-2.x.jar:/usr/share/java/lucene-test-framework-4.10.4.jar:/usr/share/java/lucene-codecs-4.10.4.jar:/usr/share/java/lucene-queryparser-4.10.4.jar:/usr/share/java/apache-log4j-extras-1.2.17.jar:/usr/share/java/jna.jar:/usr/share/java/lucene-spatial-4.10.4.jar:/usr/share/java/lucene-queries-4.10.4.jar:/usr/share/java/lucene-analyzers-stempel-4.10.4.jar:/usr/share/java/lucene-analyzers-common-4.10.4.jar:/usr/share/java/lucene-demo-4.10.4.jar:/usr/share/java/lucene-grouping-4.10.4.jar: -Des.default.config=/etc/elasticsearch/elasticsearch.yml -Des.default.path.home=/usr/share/elasticsearch -Des.default.path.logs=/var/log/elasticsearch -Des.default.path.data=/var/lib/elasticsearch -Des.default.path.work=/tmp/elasticsearch -Des.default.path.conf=/etc/elasticsearch
как команду и выполните (например): $command org .elasticsearch.plugins.PluginManager -i elasticsearch/elasticsearch-analysis-stempel
или обратитесь за помощью $command org.elasticsearch.plugins.PluginManager -h

person cb1986ster    schedule 18.07.2017