单节点搭建教程,看这里
https://blog.csdn.net/qq_38403590/article/details/124597583
正常3台机器搭建(暂时没写完,因为我们客户用的是docker,后续补充)
准备3台机器(101,102,103)
只要 cluster.name 属性相同,它们就可以加入与现有节点相同的集群
docker容器化,es集群搭建
首先你得有docker
集群的配置,主要是es的yml文件
拉取es的镜像
docker pull elasticsearch:7.9.3
创建数据挂载目录(挂载是防止重启数据丢失)
mkdir -p /install/ES/config
创建挂载目录
cd /install/ES
创建配置文件目录
cd /install/ES/config
编辑
es1.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 宿主ip
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: [ "宿主ip:9300","宿主ip:9301","宿主ip:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: [ "es-node1"]
当前节点名称 node.name: es-node1
任意机器外网能够访问 network.bind_host: 0.0.0.0
本机的ip地址 network.publish_host: 宿主ip
对外访问的端口http.port: 9200
es内部访问的端口transport.tcp.port: 9300
集群机器discovery.zen.ping.unicast.hosts: ["宿主ip:9300","宿主ip:9301","宿主ip:9302"]
防止脑裂,选举验证方式(【你填写的数/2+1 =机器总数】 代表能正常选举) discovery.zen.minimum_master_nodes: 2
主节点是谁cluster.initial_master_nodes: ["es-node1"]
es2.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 宿主ip
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: [ "宿主ip:9300","宿主ip:9301","宿主ip:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: [ "es-node1"]
es3.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 宿主ip
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: [ "宿主ip:9300","宿主ip:9301","宿主ip:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: [ "es-node1"]
给权限
chmod -R 777 /install/ES
调高centos线程数(据官方说明,必须不小于这个值才可以)
vi /etc/sysctl.conf
加入
vm.max_map_count=262144
更新配置
sysctl -p
启动三台容器
主节点
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 \
-v /install/ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /install/ES/data1:/usr/share/elasticsearch/data \
--name elasticsearch01 docker.io/elasticsearch:7.9.3
从节点2
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 \
-v /install/ES/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /install/ES/data2:/usr/share/elasticsearch/data \
--name elasticsearch02 docker.io/elasticsearch:7.9.3
从节点3
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 \
-v /install/ES/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /install/ES/data3:/usr/share/elasticsearch/data \
--name elasticsearch03 docker.io/elasticsearch:7.9.3
插件验证:
成功!
0 of 0的意思代表没有索引,你还没有建相关的index表
参考:
https://elasticstack.blog.csdn.net/article/details/99443042