【问题标题】:Running elasticsearch container on raspberry pi 3在树莓派 3 上运行 elasticsearch 容器
【发布时间】:2018-03-14 13:38:38
【问题描述】:

我正在尝试在 rpi3 上运行 ELK 堆栈的容器化 Elasticsearch。 docker hub 上没有现有的图像,所以我试图从头开始构建一个。 我使用Dockerfile 作为基础并将基础映像更改为resin/rpi-raspbian。但是,我遇到了几个问题:

  1. 对于 ES 5.4.0+,ES 进程无法启动,因为弹性捆绑的 jar 文件中缺少 libjnidispatch.so(错误:未找到本机库 (com/sun/jna/linux-arm/libjnidispatch.so)在资源路径中)
  2. 因此,我改为降级到 se v5.3.2。我解决了 jna 问题,但 ES 仍然无法引导,因为由于运行时异常(seccomp 不可用:'arm' 架构不受支持)

Elasticsearch 日志如下。 [2017-10-03T13:05:44,366][WARN][o.e.b.JNANatives] 无法安装系统调用过滤器: java.lang.UnsupportedOperationException: seccomp 不可用: 'arm' 架构不受支持

附:我已经将堆大小减少到 512m。

我应该做些什么来实现这一点?谢谢。

【问题讨论】:

  • Elasticsearch 在 JVM 上运行,所以这应该会有所帮助:stackoverflow.com/questions/14635999/…
  • 谢谢。我较早地发现了该线程并帮助我缩小了第一次失败的原因(v5.4.0+)。有一个弹性捆绑的 jna.jar,它不包含用于基于 arm 的操作系统的 libjnidispatch.so。因此,我在自定义 jna 发生之前降级到 v.5.3.2(当前)。然后我被困在第二个问题上。
  • 不要认为它们是相关的。 #14337 是指文件系统级别的错误并引发错误“未找到安装点”。但是,我的情况是 ES 没有通过 SystemFilter 检查 b/c ES v5 似乎不支持 arm arch。

标签: docker elasticsearch raspberry-pi3


【解决方案1】:

回答我自己的问题,以防有人也遇到同样的问题。但是,欢迎任何其他答案!

我遇到了一个git repo,它构建了一个在 rpi 板上运行的 docker 映像。似乎作者修改了原始的 elasticsearch 源代码,在 ARM 上添加了 seccomp 支持。修改后的发行版的 docker repo 可以在here找到。

我的树莓派 3 板上成功运行了 ElasticSearch 2.4。 这是我的git repo 供参考

【讨论】:

  • 我使用了 ind3x/elasticsearch 图像,我认为它使用了相同的修改后的 elasticsearch 构建;它也是2.4版。但是,由于 2.4 中的一个错误,我很快遇到了各种麻烦。使用 Java API 来索引文档会导致“找不到传输处理程序”错误。你有没有偶然遇到这个? discuss.elastic.co/t/…
猜你喜欢
  • 1970-01-01
  • 2018-07-07
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多