1. 首先master节点的配置,修改elasticsearch的配置文件,config/elasticsearch.yml;添加如下配置
cluster.name 指定集群的名称,node.name指定节点的名称,node.master: true指定该节点为主节点。
elasticsearch服务
2. 把当前主机的elasticsearch压缩包远程拷贝到三台机器
scp elasticsearch-6.1.2.tar.gz root@slave1:/usr/local/bigdata/
scp elasticsearch-6.1.2.tar.gz root@slave2:/usr/local/bigdata/
scp elasticsearch-6.1.2.tar.gz root@slave3:/usr/local/bigdata/
我这里安装有五台虚拟机,每个主机都修改了主机名
[root@master ~]# cat /etc/hostname
master
hosts文件配置的有主机名和IP地址的映射
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.129.3 master
192.168.129.4 master2
192.168.129.5 slave1
192.168.129.6 slave2
192.168.129.7 slave3
[root@master ~]#
3. slave主机的安装配置
network.host: 0.0.0.0
http.port: 9200
cluster.name: skynet
node.name: slave1
discovery.zen.ping.unicast.hosts: ["master"]
注意network.host的修改;http.port还是9200,因为是完全分布式,不存在端口冲突的问题。
4. 关于elasticsearch启动的报错问题,这个真的很郁闷,启动服务需要修改那么多配置信息,但是Mac OS就不用修改。
我的虚拟机环境是centos7,各种异常;大家可以参考网上的配置修改。
4.1 不能用root用户启动,创建一个普通用户,并授权
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
chown -R elsearch /usr/local/bigdata/elasticsearch-6.1.2 注意授权
4.2 ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解决:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 |
4.3 max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf |
添加下面配置:
vm.max_map_count=655360 |
并执行命令:
[root@centos129 bin]# sysctl -p vm.max_map_count = 655360 |
然后,重新启动elasticsearch,即可启动成功。
4.4 系统centos7.1可以访问127.0.0.1:9200,但不能访问192.168.29.128:9200 后面ip就是127.0.0.1的局域网ip
修改配置文件 config/elasticsearch.yml network.host: 0.0.0.0 |
如果大家遇到其他问题,可以自己百度一下;我的解决以上问题可以启动了。
5. 启动三个slave,最后通过head插件看到的集群状态为:
至此,elasticSearch的完全分布式安装完成;有问题留言,共同讨论。