docker搭建一个es集群,主要还是docker太方便了。es也有官方的镜像
一、环境准备
- 一台虚拟机 ,然后:
- 操作系统:centos7.x
- 必要应用:docker,顺便配一下阿里云加速镜像
二、搭建集群
- 创建必要目录
mkdir -p /root/es/es1-data
mkdir -p /root/es/es2-data
mkdir -p /root/es/es3-data
- 配置宿主机的必要配置
- 修改 /etc/sysctl.conf —— vim /etc/sysctl.conf , 在行某填入
vm.swappiness = 30
vm.max_map_count=655360
- 然后wq保存后,再执行命令应用配置
sysctl -p
- 创建各个节点的配置
discovery.zen.ping.unicast.hosts: 这个是填写master节点的地址
- es1 , 这个节点作为master节点和数据节点,vim /root/es/es1.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 192.168.150.129
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
cluster.initial_master_nodes: ["es-node1"]
# 这里是填 master节点的 host
discovery.zen.ping.unicast.hosts: ["192.168.150.129:9300"]
discovery.zen.minimum_master_nodes: 1
- es2 的es2.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.150.129
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.150.129:9300"]
discovery.zen.minimum_master_nodes: 1
- es3的es3.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 192.168.150.129
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["192.168.150.129:9300"]
discovery.zen.minimum_master_nodes: 1
- 启动各个节点
- es1 master节点
# es1 启动主节点的方式
docker run -d --name=es1 --net host \
-v /root/es/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/es/es1-data:/usr/share/elasticsearch/data \
-p 9200:9200 -p 9300:9300 elasticsearch:7.5.2
- es2 数据节点
# es2 启动数据节点
docker run --rm --name=es2 --net host \
-v /root/es/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/es/es2-data:/usr/share/elasticsearch/data \
-p 9201:9201 -p 9301:9301 elasticsearch:7.5.2
- es3 数据节点
# es3 启动数据节点
docker run --rm --name=es3 --net host \
-v /root/es/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/es/es3-data:/usr/share/elasticsearch/data \
-p 9202:9202 -p 9302:9302 elasticsearch:7.5.2
- 可以通过查看各个节点的日志
docker container logs es1
docker container logs es2
docker container logs es3
三、管理cluster界面
- es的管理工具 https://github.com/mobz/elasticsearch-head#running-with-built-in-server , 这里直接用现成的Chrome 插件就可以,成功后可以看见如下图:
es head.jpg
- 然后输入es的地址即可
四、遇到的问题
- 创建目录权限问题
- 临时关闭selinux然后再打开
# 终端执行
setenforce 0
setenforce 1
- 然后挂载的/root/es-data 赋予权限
# 简单粗暴的赋权,可以根据自己需要选择
chmod 777 /root/es
网友评论