《果然新鲜》电商项目(47)- Docker下搭建ElasticSearch集群

本文详细介绍了如何在Docker环境下搭建Elasticsearch集群,包括关闭防火墙、设置环境参数、拉取镜像、创建虚拟网络、启动节点以及配置分词插件。通过这个过程,可以解决SpringBoot项目中因ES非集群模式导致的连接错误。最后,文章还演示了如何安装和使用IK分词插件,并提醒读者在完成配置后重启Docker容器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 为什么要安装ElasticSearch集群?

「电商」项目接下来将要讲解 “商品搜索” 功能,项目使用的是SpringBoot开发的,需要引入spring-boot-starter-data-elasticsearch依赖,要求ES必须以集群的方式连接,否则会报错,如下:

ERROR:None of the configured nodes are available.

下面开始讲解如何在docker下安装es集群。

2. Docker下安装ElasticSearch集群的步骤

由于机子的性能问题,只能在同一个虚拟机里搭建两个es集群,以端口号区分!

2.1.关闭防火墙

//临时关闭
systemctl stop firewalld.service
//禁止开机启动
systemctl disable firewalld.service

2.2.添加环境参数

# 添加这个
vm.max_map_count=262144 
# 保存后执行这个命令
sysctl -p
service docker restart

2.3.拉取镜像

docker pull elasticsearch:7.6.1

2.4.准备虚拟网络和挂载目录

# 创建虚拟网络
docker network create es-net

# node1 的挂载目录
mkdir -p -m 777 /var/lib/es/node1/data
mkdir -p -m 777 /var/lib/es/node1/plugins

# node2 的挂载目录
mkdir -p -m 777 /var/lib/es/node2/data
mkdir -p -m 777 /var/lib/es/node2/plugins

2.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 \
  -e cluster.initial_master_nodes=node1 \
  -e cluster.name=es-cluster \
  -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
  elasticsearch:7.6.1

环境变量说明:
在这里插入图片描述
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 \
	-e cluster.initial_master_nodes=node1 \
	-e cluster.name=es-cluster \
	-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
	elasticsearch:7.6.1

2.6.访问

在这里插入图片描述

3.配置分词

cd /var/lib/es/node2/plugins
mkdir ik
cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
unzip elasticsearch-analysis-ik-7.6.1.zip

cd /var/lib/es/node1/plugins
mkdir ik
cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
unzip elasticsearch-analysis-ik-7.6.1.zip

重新启动Docker容器!

4. 总结

本文主要讲解在Docker下搭建ElasticSearch集群的方式,以及常见的填坑方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源码小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值