Установка эластичного поиска 7 на Raspberry Pi 3 - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь установить последнюю версию Elasticsearch на мой Raspberry Pi 3, следуя инструкции по установке , однако я обнаружил

Некоторую информацию о моей системе:

$ sudo apt-get update
$ sudo apt-get upgrade

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian

$ java -version
openjdk version "9-Raspbian"
OpenJDK Runtime Environment (build 9-Raspbian+0-9b181-4bpo9rpt1)
OpenJDK Server VM (build 9-Raspbian+0-9b181-4bpo9rpt1, mixed mode)

// I tried also with openjdk-java-8

Что я пробовал

  1. установить через sudo-apt
$ sudo apt-get install elasticsearch
....
Preparing to unpack .../elasticsearch_1.7.5-1_all.deb .
....

$ ./usr/share/elasticsearch/bin/elasticsearch

xception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/common/jackson/dataformat/yaml/snakeyaml/error/YAMLException
    at org.elasticsearch.common.jackson.dataformat.yaml.YAMLFactory._createParser(YAMLFactory.java:426)
    at org.elasticsearch.common.jackson.dataformat.yaml.YAMLFactory.createParser(YAMLFactory.java:327)
    at org.elasticsearch.common.xcontent.yaml.YamlXContent.createParser(YamlXContent.java:90)
    at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:45)
    at org.elasticsearch.common.settings.loader.YamlSettingsLoader.load(YamlSettingsLoader.java:46)
    at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromStream(ImmutableSettings.java:982)
    at org.elasticsearch.common.settings.ImmutableSettings$Builder.loadFromUrl(ImmutableSettings.java:969)
    at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:110)
    at org.elasticsearch.bootstrap.Bootstrap.initialSettings(Bootstrap.java:144)
    at org.elasticsearch.bootstrap.Bootstrap.main(Bootstrap.java:215)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:32)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.common.jackson.dataformat.yaml.snakeyaml.error.YAMLException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 11 more

добрался до ластикомного поиска и получил tar-файл
/elasticsearch-7.1.1/bin/elasticsearch

./elasticsearch-7.1.1/bin/elasticsearch-env: line 69: /home/pi/elasticsearch-7.1.1/jdk/bin/java: cannot execute binary file: Exec format error
путь докера
$ docker --version
Docker version 18.04.0-ce, build 3d479c0

$ docker image ls
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
docker.elastic.co/elasticsearch/elasticsearch   7.1.1               b0e9f9f047e6        4 weeks ago         894MB

$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.1.1
standard_init_linux.go:190: exec user process caused "exec format error"

Кому-нибудь удалось установить Elasticsearch 7 на Raspberry Pi 3?Есть ли способ обойти перечисленные выше проблемы?

Ответы [ 2 ]

1 голос
/ 19 июля 2019

К сожалению, в отличие от всех предыдущих выпусков, пакет deb для ElasticSearch 7 упакован только для архитектур Intel .Я полагаю, что зависимости - это JVM и модуль машинного обучения, которые можно отключить, но их придется перепаковывать или устанавливать вручную из файлов в пакете deb.(Если я не успею сделать это, я уверен, что в конце концов это сделает кто-то другой).

Если вам особенно не нужны функции ES7, проще всего будет установить последнюю версию 6, которая будетустановить на Raspbian.Это здесь: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.deb

Вы можете изменить используемую по умолчанию память с 1G на 512M в /etc/elasticsearch/jvm.options и отключить машинное обучение в / etc /asticsearch /asticsearch.yml (xpack.ml.enabled: false).

Хотя он будет работать с openjre, средой исполнения Java по умолчанию на Raspbian, он работает примерно в 30 раз медленнее, чем на аналогичном Intel.Я никогда не понимал, почему, но хорошо, если вместо этого вы установите Oracle JRE:

apt-get install oracle-java8-jdk

Обратите внимание на репозиторий Raspbian / Debian (как в apt-get)установить) версия 1, а не v7 - древняя, избегайте ее.

При широком использовании ES6 (и его предшественников) на Raspberry Pi я не нашел ничего, что могло бы отличаться от Intel, несмотря на их заявление о том, что они не используютне поддерживает ничего, кроме Intel.

Однако RPi изо всех сил пытается запустить весь стек ELK (Elasticsearch, Logstatsh, Kibana) (я это пробовал): на самом деле ему не хватает памяти.RPi 4 с 4 ГБ может работать лучше, я не пробовал, или распределен по трем отдельным Pis.Я запустил ELK 5, но он исчерпал память после нескольких дней использования, и я не смог запустить ELK 6 вообще.

0 голосов
/ 04 июля 2019

Внедрение ElasticSearch - это собственные двоичные файлы Java в папке jdk.

Вы можете определить JAVA_HOME из вашей собственной системы с помощью:

JAVA_HOME=/usr ./bin/elasticsearch

Тогда вы не будете поддерживаться, но можете использоватьasticsearchна руку ...

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