Docker搭建Elasticsearch(ES)集群

Docker搭建Elasticsearch(ES)集群

1关闭防火墙

安装软件成功后要做端口映射,为了防止访问不到所以要关闭防火墙

关闭防火墙

systemctl stop firewalld.service

禁用防火墙

systemctl disable firewalld.service

2下载ElasticSearch镜像

使用docker下载ElasticSearch镜像的前提是安装docker。

docker的安装https://blog.csdn.net/chaochao2113/article/details/117967355

下载 Elastic Search 镜像

docker pull elasticsearch:7.9.3

集群部署结构

a

在一台服务器上,使用Docker部署三个ES容器组成的集群

3准备虚拟网络和挂载目录

创建虚拟网络

docker network create es-net

如果出现下面情况

b8cb276162f6ad398f96d2305bc1dd4

重启docker

sudo systemctl restart docker

node1 的挂载目录

mkdir -p -m 777 /var/lib/es/node1/plugins
mkdir -p -m 777 /var/lib/es/node1/data

node2 的挂载目录

mkdir -p -m 777 /var/lib/es/node2/plugins
mkdir -p -m 777 /var/lib/es/node2/data

node3 的挂载目录

mkdir -p -m 777 /var/lib/es/node3/plugins
mkdir -p -m 777 /var/lib/es/node3/data

4设置 max_map_count

必须修改系统参数 max_map_count,否则 Elasticsearch 无法启动:

在 /etc/sysctl.conf文件中添加 vm.max_map_count=262144

echo 'vm.max_map_count=262144' >>/etc/sysctl.conf

需要重启服务器!

5启动 Elasticsearch 集群

node1:

docker run -d \
  --name=node1 \
  --restart=always \
  --net es-net \
  -p 9200:9200 \
  -p 9300:9300 \
  -v /var/lib/es/node1/plugins:/usr/share/elasticsearch/plugins \
  -v /var/lib/es/node1/data:/usr/share/elasticsearch/data \
  -e node.name=node1 \
  -e node.master=true \
  -e network.host=node1 \
  -e discovery.seed_hosts=node1,node2,node3 \
  -e cluster.initial_master_nodes=node1 \
  -e cluster.name=es-cluster \
  -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  elasticsearch:7.9.3

环境变量说明:

环境变量说明
node.name节点在集群中的唯一名称
node.master可已被选举为主节点
network.host当前节点的地址
discovery.seed_hosts集群中其他节点的地址列表
cluster.initial_master_nodes候选的主节点地址列表
cluster.name集群名
ES_JAVA_OPTSjava虚拟机参数

参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html

node2:

docker run -d \
  --name=node2 \
  --restart=always \
  --net es-net \
  -p 9201:9200 \
  -p 9301:9300 \
  -v /var/lib/es/node2/plugins:/usr/share/elasticsearch/plugins \
  -v /var/lib/es/node2/data:/usr/share/elasticsearch/data \
  -e node.name=node2 \
  -e node.master=true \
  -e network.host=node2 \
  -e discovery.seed_hosts=node1,node2,node3 \
  -e cluster.initial_master_nodes=node1 \
  -e cluster.name=es-cluster \
  -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  elasticsearch:7.9.3

node3:

docker run -d \
  --name=node3 \
  --restart=always \
  --net es-net \
  -p 9202:9200 \
  -p 9302:9300 \
  -v /var/lib/es/node3/plugins:/usr/share/elasticsearch/plugins \
  -v /var/lib/es/node3/data:/usr/share/elasticsearch/data \
  -e node.name=node3 \
  -e node.master=true \
  -e network.host=node3 \
  -e discovery.seed_hosts=node1,node2,node3 \
  -e cluster.initial_master_nodes=node1 \
  -e cluster.name=es-cluster \
  -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  elasticsearch:7.9.3

6查看启动结果结果

Elasticsearch的启动速度比较慢,要稍微等一会才能访问成功!

访问地址:http://192.168.126.22:9200/

image-20210708203839819

http://192.168.64.181:9200/_cat/nodes

image-20210708203947020

7chrome浏览器安装插件:elasticsearch-head

elasticsearch-head 项目提供了一个直观的界面,可以很方便地查看集群、分片、数据等等。elasticsearch-head最简单的安装方式是作为 chrome 浏览器插件进行安装。

(1)在 elasticsearch-head 项目仓库中下载 chrome 浏览器插件

https://github.com/mobz/elasticsearch-head/raw/master/crx/es-head.crx

(2)将文件后缀改为 zip

image-20210708204148948

解压缩

(3)在 chrome 浏览器中选择“更多工具”–“扩展程序”

image-20210708204347741

(4)在“扩展程序”中确认开启了“开发者模式”

image-20210708204410210

(5)点击“加载已解压的扩展程序”(直接拖进来也可以)

image-20210708204447754

(6)选择前面解压的插件目录

在浏览器中点击 elasticsearch-head 插件打开 head 界面,并连接 http://192.168.64.181:9200/
image-20210708204507564

image-20210708204532753

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值