单机部署elasticsearch集群
elasticsearch集群部署通常部署在不同的机器,但如果需要在同一台机器,是否也能部署成集群模式吗?
答案是可以的,但需要修改每个es节点监听端口,避免端口冲突。
加入在同一个集群上部署有3个基点的集群。
把es安装包拷贝成3分,例如
elasticsearch-7.11.2 elasticsearch-7.11.2-node2 elasticsearch-7.11.2-node3
elasticsearch-7.11.2的配置为:
path.data: data
path.logs: logs
network.host: 10.8.4.12
cluster.name: logkeeper-es-cluster
node.name: node1
http.port: 9200
#在启动此节点时,传递主机的初始列表以执行发现
discovery.seed_hosts: ['10.8.4.12:9300','10.8.4.12:9301','10.8.4.12:9302']
#使用符合主节点条件的初始节点集引导集群
cluster.initial_master_nodes: ['node1','node2','node3']
#整个集群重新启动后阻止初始恢复,直到启动N个节点
gateway.recover_after_nodes: 2
xpack.ml.enabled: false
transport.tcp.port: 9300
elasticsearch-7.11.2-node2 节点的配置为:
path.data: data
path.logs: logs
network.host: 10.8.4.12
cluster.name: logkeeper-es-cluster
node.name: node2
http.port: 9201
#在启动此节点时,传递主机的初始列表以执行发现
discovery.seed_hosts: ['10.8.4.12:9300','10.8.4.12:9301','10.8.4.12:9302']
#使用符合主节点条件的初始节点集引导集群
cluster.initial_master_nodes: ['node1','node2','node3']
#整个集群重新启动后阻止初始恢复,直到启动N个节点
gateway.recover_after_nodes: 2
xpack.ml.enabled: false
transport.tcp.port: 9301
elasticsearch-7.11.2-node3 节点的配置为:
path.data: data
path.logs: logs
network.host: 10.8.4.12
cluster.name: logkeeper-es-cluster
node.name: node3
http.port: 9202
#在启动此节点时,传递主机的初始列表以执行发现
discovery.seed_hosts: ['10.8.4.12:9300','10.8.4.12:9301','10.8.4.12:9302']
#使用符合主节点条件的初始节点集引导集群
cluster.initial_master_nodes: ['node1','node2','node3']
#整个集群重新启动后阻止初始恢复,直到启动N个节点
gateway.recover_after_nodes: 2
xpack.ml.enabled: false
transport.tcp.port: 9302
1.集群脚本
1.1. 启动脚本
start-es.sh
#!/bin/bash
./elasticsearch-7.11.2/bin/elasticsearch -d
./elasticsearch-7.11.2-node2/bin/elasticsearch -d
./elasticsearch-7.11.2-node3/bin/elasticsearch -d
1.2. 停止脚本
#!/bin/bash
pid=$(ps -ef | grep '/users/liyuan/es-test/elasticsearch-7.11.2'| grep -v grep | awk '{print $2}')
if [ ! "$pid" = "" ]; then
kill -15 $pid
fi