首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在raspberry pi 3上安装elasticsearch 7

在raspberry pi 3上安装elasticsearch 7
EN

Stack Overflow用户
提问于 2019-06-21 13:08:52
回答 6查看 3.6K关注 0票数 1

我试图通过遵循安装教程在我的覆盆子Pi 3上安装最新的Elasticsearch,但是我找到了绝对的

关于我的系统的一些信息:

代码语言:javascript
运行
复制
$ 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安装
代码语言:javascript
运行
复制
$ 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
  1. elasticsearch下载并获取tar文件
代码语言:javascript
运行
复制
/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
  1. 码头路径
代码语言:javascript
运行
复制
$ 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"

有人在Raspberry Pi 3上安装了Elasticsearch 7吗?是否有办法解决上述问题?

EN

回答 6

Stack Overflow用户

发布于 2019-07-19 16:56:58

不幸的是,与以前的所有版本不同,ElasticSearch 7的deb包是只为Intel架构打包。我相信依赖项是JVM和机器学习模块,它们可以关闭,但必须从deb包中的文件中手动重新打包或安装。(如果我没来得及做这件事,我肯定最终会有人做的)。

除非您特别需要ES7特性,否则最简单的方法是安装最后一个版本6,它将安装在Raspbian上。在这里:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.deb

您将希望将/etc/elasticsearch/jvm.options中使用的默认内存从1G更改为512 m,并在/etc/elasticsearch/弹性搜索. You (xpack.ml.enabled: false)中关闭机器学习。

虽然它将与openjre一起运行,而openjre是Raspbian上默认的Java运行时,但它的运行速度是在等效的Intel上运行速度的30倍。我从来没有弄清楚原因,但如果您安装Oracle JRE,则可以:

apt-get install oracle-java8-jdk

注意,Raspbian/Debian (在apt-get安装中)是版本1,不是v7 -古的,请避免它。

在Raspberry上广泛使用ES6 (及其前身)时,我没有发现任何与英特尔不同的工作方式,尽管他们声明他们不支持英特尔以外的任何东西。

然而,RPi很难运行整个ELK (Elasticsearch,Logstatsh,Kibana)堆栈(我尝试过了):它真的没有足够的内存。4GB的RPi 4可能会做得更好,我还没有试过,或者在三个不同的Pis上分发。我确实让麋鹿5跑了,但经过几天的使用,它耗尽了记忆,我根本无法让麋鹿6跑。

票数 3
EN

Stack Overflow用户

发布于 2019-07-28 19:32:56

在Raspbian-9上,经过安装elasticsearch-7并将其清除为安装elasticsearch-6的测试后,除了上面所说的之外,我还必须在/etc/default/elasticsearch定义JAVA_HOME:

代码语言:javascript
运行
复制
# Elasticsearch Java path
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-armhf

对于两个文件夹,用户不是正确的,可以修复它:

代码语言:javascript
运行
复制
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
票数 1
EN

Stack Overflow用户

发布于 2019-12-28 11:03:11

charik.org的例子中,我们使用Ubuntu 19.10运行一个RPI4集群,这是Raspberry上唯一完全支持Arm64v8架构的操作系统。

决定使用这个操作系统并不容易,因为它比轻量级的raspbian占用更多的内存,但是使用的方便可以充分解释我们的决定。

我们从ES包为Arm64v8体系结构构建ElasticSearchv7.5.1映像,没有在这里找到jdk:elasticsearch-no-jdk

要查看我们的码头中心回购以获取构建映像:战车/弹力搜索:最新

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56704124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档