1. 先关闭elasticseach,登录root账户,修改之前解压的es文件夹名为master,好区分,并重新给改名后的文件夹赋esuser权限。
mv elasticsearch-7.14.1 elasticsearch-master
chown -R esuser:esgroup elasticsearch-master
2. 重新解压缩之前下载的elasticsearch的tar文件,解压缩两次作为2个slave节点,并给esuser赋予权限,千万不要直接复制elasticsearch-master文件复制两份,我开始是复制的。一直加入不到节点。浪费了半天时间
tar -zxvf elasticsearch-7.14.1-linux-x86_64.tar.gz
mv elasticsearch-7.14.1 elasticsearch-slave1
tar -zxvf elasticsearch-7.14.1-linux-x86_64.tar.gz
mv elasticsearch-7.14.1 elasticsearch-slave2
chown -R esuser:esgroup elasticsearch-slave1
chown -R esuser:esgroup elasticsearch-slave2
3. 进入elasticsearch-master目录,修改config/elasticsearch.yml
network.host之前已经配置过,无须动 network.host: 10.67.9.31
修改node.name的值为master
node.name: master
释放cluster.name的注释,修改其值为你自己想要的集群名字,如
cluster.name: es-application
释放discovery.seed_hosts注释,配置候选主节点,设置两个主节点,一个数据节点
discovery.seed_hosts: Elasticsearch将绑定到可用的回送地址,并将扫描本地端口9300至9305,每个值都采用 host:port 或者 host 形式。
discovery.seed_hosts: ["10.67.9.31:9300","10.67.9.31:9301"]
修改cluster.initial_master_nodes的值,跟node.name的值一致
cluster.initial_master_nodes: 首次启动全新的Elasticsearch集群时,会出现集群选举情况,该步骤确定了在第一次选举中符合主机资格的节点的集合。重新启动集群或者有新节点加入集群时,不使用此设置。
cluster.initial_master_nodes: ["master"]
最后添加如下一段配置,指明当前节点是否可以被选举为master节点,是:true、否:false,注意冒号后要有空格
node.master: true
5. 最后配置结果如下:
cluster.name: es-application
node.name: master
network.host: 10.67.9.31
network.bind_host: 0.0.0.0
node.master: true
http.port: 9200
discovery.seed_hosts: ["10.67.9.31:9300","10.67.9.31:9301","10.67.9.31:9302"]
cluster.initial_master_nodes: ["master"]
http.cors.enabled: true
http.cors.allow-origin: "*"
4. 切换esuser账户,后台启动es
./elasticsearch -d
5. es主节点启动成功后,分别修改slave1和slave2节点的config/elasticsearch.yml文件
cluster.name: es-application
node.name: slave1
network.host: 10.67.9.31
http.port: 9201
discovery.seed_hosts: ["10.67.9.31:9300","10.67.9.31:9301","10.67.9.31:9302"]
http.cors.enabled: true
http.cors.allow-origin: "*"
network.bind_host: 0.0.0.0
cluster.name: es-application
node.name: slave2
network.host: 10.67.9.31
http.port: 9202
discovery.seed_hosts: ["10.67.9.31:9300","10.67.9.31:9301","10.67.9.31:9302"]
http.cors.enabled: true
http.cors.allow-origin: "*"
network.bind_host: 0.0.0.0
6. 我是由于服务器配置太低,内存不足,只启动了一个节点,启动成功后访问 http://服务器ip:9200/_cat/nodes?v, 如下,说明集群成功
同理,访问head插件,也能看到集群信息