es部署–生产环境–02–es集群
前提
使用hd用户登陆
1、机器
IP | 节点 |
---|---|
192.168.187.161 | node-1 |
192.168.187.162 | node-2 |
192.168.187.163 | node-3 |
至少需要3台集群来完成集群,包括1台主节点,2台工作节点。若其中一台 down 了,则会选出新的主节点。
2、安装
在三台机器上完成单机部署的安装,参考 es部署–生产环境–01–es单机
3、修改配置文件
编辑配置文件
vim /home/hd/elasticsearch-7.9.3/config/elasticsearch.yml
3.1、node-1
cluster.name: cluster-es
node.name: node-1
node.master: true
node.data: true
network.host: 0.0.0.0
network.publish_host: 192.168.187.161
discovery.seed_hosts: ["192.168.187.161:9300","192.168.187.162:9300","192.168.187.163:9300"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
3.2、node-2
cluster.name: cluster-es
node.name: node-2
node.master: true
node.data: true
network.host: 0.0.0.0
network.publish_host: 192.168.187.162
discovery.seed_hosts: ["192.168.187.161:9300","192.168.187.162:9300","192.168.187.163:9300"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
3.3、node-3
cluster.name: cluster-es
node.name: node-3
node.master: true
node.data: true
network.host: 0.0.0.0
network.publish_host: 192.168.187.163
discovery.seed_hosts: ["192.168.187.161:9300","192.168.187.162:9300","192.168.187.163:9300"]
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
4、验证
4.1、停止ES
/etc/init.d/elasticsearch stop
4.1、删除 data 文件夹
因为之前我们启动过es服务器,需要删除data文件夹,否者可能找不到集群节点
rm -rf /home/hd/elasticsearch-7.9.3/data
4.3、重启3台机器
/etc/init.d/elasticsearch restart
4.4、验证
http://192.168.187.162:9200/_cat/nodes
http://192.168.187.162:9200/_cat/health?v
5、参数说明
5.1、cluster.name
集群名字,每台ES的集群名字都必须一致
5.2、node.name
节点名字,每台 ES 节点字都必须不一样
5.3、discovery.zen.minimum_master_nodes: 2
- 表示集群最少的 master 数,如果集群的最少 master 数据少于指定的数,将无法启动
- 官方推荐 node master 数设置为集群数/2+1
- 我这里三台 ES 服务器,配置最少需要两台 master,整个集群才可正常运行
5.4、node.master
表示该节点是否有资格选举为 master,这里3台都设置为true,因为我们需要3台ES都可以选举为master,因为minimum_master_nodes:2
假设一台挂了,剩余的2台master还可以让es集群启动起来。
5.5、node.data
存储索引数据,三台都设为 true 即可
5.6、network.host
设置network.bind_host和network.publish_host为network.host的值。
5.7、network.bind_host
是elasticsearch侦听的地方
5.8、network.publish_host
elasticsearch与其他集群组件进行通信的地方。
5.9、discovery.seed_hosts
集群节点的 ip 配置,端口为 9300。
5.10、cluster.initial_master_nodes
设置一系列符合主节点条件的节点的主机名或 IP 地址来引导启动集群
5.11、http.cors.enabled: true
支持跨域访问开关
5.12、http.cors.allow-origin: “*”
支持跨域访问