前言
也不想前言了,作为一名非专业运维,各种bug层出不穷,不过好在功夫不负有心人,终于是成功了搭建了ES单机集群
准备工作
首先就是一个巨坑,我在使用docker-compose内写了挂载,他自动创建,然后,就没有然后了,他自动创建的文件夹和文件是没有读写权限的,所以我们手动创建。
# 创建数据/日志目录 这里我们部署2个节点
# 由于服务器辣鸡,所以只部署两个,如果想增多的话,就手动加着建就行了
mkdir /opt/elasticsearch/data/{node0,node1,node2} -p
mkdir /opt/elasticsearch/logs/{node0,node1,node2} -p
mkdir /opt/elasticsearch/node
cd /opt/elasticsearch/node
mkdir es1
mkdir es2
cd /opt/elasticsearch
# 给予777最大权限
chmod 0777 data/* -R && chmod 0777 logs/* -
把该创建完成的都创建完成,之后,又是一个坑,系统参数不足导致的内存一直不够用,这里我们直接修改/etc/sysctl.conf
echo vm.max_map_count=655360 >> /etc/sysctl.conf
# 在root账户执行这一句 作用是重新载入sysctl系统参数
sysctl -p
Docker-compose文件
然后进入到
/opt/elasticsearch
目录下,建立docker-compose.yml文件即docker-compose使用的主模板文件:
version: '3'
services:
es1:
image: elasticsearch:7.2.0
container_name: es1
privileged: true
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/node0:/usr/share/elasticsearch/data
- ./node/es1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/node0:/usr/share/elasticsearch/logs
ports:
- 9200:9200
networks:
- esnet
es3:
image: elasticsearch:7.2.0
container_name: es2
privileged: true
environment:
- "ES_JAVA_OPTS=-Xms128m -Xmx128m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/node2:/usr/share/elasticsearch/data
- ./node/es2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/node2:/usr/share/elasticsearch/logs
ports:
- 9202:9200
links:
- es1
networks:
- esnet
# 使用桥接的网络连接方式
networks:
esnet:
driver: bridge
然后cd node/es1/
写elasticsearch.yml
配置文件
# 集群名称 EsCluster
cluster.name: yawp
# 节点名称
node.name: es1
# 是否为主节点
node.master: true
# 该节点是否存储数据
node.data: true
# 对外开放的http端口
http.port: 9200
# 回环地址
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: ["es1"]
bootstrap.memory_lock: true
# 是否运行跨域REST请求
http.cors.enabled: true
# 允许跨域请求来自何处
http.cors.allow-origin: "*"
# 有成为主节点资格的最小节点数
discovery.zen.minimum_master_nodes: 1
xpack.security.enabled: false
cluster.initial_master_nodes: ["es1"]
从节点的配置文件elasticsearch.yml
# 集群名称 EsCluster
cluster.name: yawp
# 节点名称
node.name: es2
# 是否为主节点
node.master: false
# 该节点是否存储数据
node.data: true
# 对外开放的http端口
http.port: 9200
# 回环地址
network.host: 0.0.0.0
# 有资格成为主节点的资格列表
discovery.zen.ping.unicast.hosts: ["es1"]
# 是否运行跨域REST请求
http.cors.enabled: true
# 允许跨域请求来自何处
http.cors.allow-origin: "*"
# 有成为主节点资格的最小节点数
discovery.zen.minimum_master_nodes: 1
xpack.security.enabled: false
cluster.initial_master_nodes: ["es1"]
然后回到/opt/elasticsearch
启动集群 docker-compose up -d
启动成功后通过docker-compose ps
查看集群情况,如果你的容器在运行,但是输入这个命令却找不到,请不用担心,停掉容器,重新启动一下就好了。
- Post link: https://www.godhearing.cn/docker-componse-da-jian-es-dan-ji-ji-qun/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.