elasticsearch由java开发,鉴于java跨平台的特性,运行在树莓派上也是没有问题的,但官网给的下载地址却只有x86平台的软件包。
不过经过我测试,除了xpack的机器学习功能无法在树莓派上运行,其他都很顺利。
(准确的说在树莓派4 2GB内存以上的版本才能运行elasticsearch, 1GB版的树莓派由于内存不足根本跑不起来7.x版本的elasticsearch)
环境
树莓派4 4GB版 debian buster aarch64 x 3
信息如下:
name | IP |
---|---|
RPi-4B-1 | 192.168.1.101 |
RPi-4B-2 | 192.168.1.102 |
RPi-4B-3 | 192.168.1.103 |
elasticsearch Linux x86_64 v7.4.0 下载地址
java 1.8.0
解压&配置
下载之后,分别解压至三台树莓派的/opt目录,统一重命名为elasticsearch-7.4.0, 更改目录所有者为pi用户
1 | sudo tar zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt |
配置文件位于elasticsearch-7.4.0/config/elasticsearch.yml
我的es集群配置文件如下:
1 | cluster.name: RPi-ES |
需要根据每个节点的具体信息分别更改node.name、network.host等配置,其他配置根据需求自行更改.
xpack.ml.enabled需要设置为false,否则会运行会报错,
http.cors.enabled和http.cors.allow-origin 开启跨域访问,否则无法使用es-head连接到es集群
discovery.zen.minimum_master_nodes: 2 防止发生脑裂, 数值为:(matser节点数/2)+1
elasticsearch自带的java在树莓派上是运行不起来的,需要在启动脚本里指定JAVA_HOME:
编辑文件config/elasticsearch-env,在如下位置添加一行(根据自己的java_home位置更改):
1 | export JAVA_HOME=/opt/jdk1.8.0_221 |
关于config/jvm.options中的-Xms1g和-Xmx1g,默认就行,不需要更改了,4GB内存的树莓派4可以改为-Xms2g和-Xmx2g,为物理内存的一半
如果只是单机运行:可参考以下配置:
1 | network.host: 192.168.1.101 |
运行
在每台机器上运行
1 | /opt/elasticsearch-7.4.0/bin/elasticsearch -d |
稍等片刻,整个ES集群就运行起来了,在chrome上安装ElasticSearch-head的插件,可可视化访问es集群: