今天尝试在一台Centos机器上运行多个ES节点,记录一下遇到的问题。
需要设置vm.max_map_count=262144
跑一个节点没有问题,在启动了第二个和第三个节点后,发现启动失败了,报错需要把vm.max_map_count设为至少262144。
sudo sysctl -w vm.max_map_count=262144
为了防止机器重启,配置丢失的问题,可以把配置写到/etc/sysctl.conf
。
无法绑定9200端口
这个其实是一个配置的缘故,默认情况下,如果不配置端口,ES以开放模式启动时,会自动分配端口。
但是,这一台Centos7原本只跑了一个ES节点,我当时在配置文件elasticsearch.yml
中设置了配置:
http.port: 9200
这样,用命令行启动时,3个实例都会去绑定9200端口,自然,只有一个实例能够成功。最终导致的结果是,启动了3个实例,最终只有一个实例在运行。
解决方案也很简单,在配置中将这一行注释掉就可以了。