elasticsearch集群搭建及参数详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch集群搭建及参数详解相关的知识,希望对你有一定的参考价值。

参考技术A elasticsearch 集群的搭建教程很多。网上一搜都是,但是,搭建不难。更重要的是明白集群原理,性能以及运维知识点。所以,本文将从这些点着重介绍。

在 elasticsearch 配置文件中有以下这些参数,将逐一介绍(其实配置文件中英文描述已经非常清楚):

起初创建节点与分片的关系,设置 shards=2,replicas=1

同样设置 shards=2,replicas=1

这个由于在官网指南中写的很清楚了,直接贴出章节。
分布式文档存储

修改配置文件

重启并查看集群健康状态:

页面访问效果(单节点):
http://119.29.248.199:9200/_plugin/head/

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

文章目录

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集群的方式,以及常见的填坑方法。

以上是关于elasticsearch集群搭建及参数详解的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch 配置详解

KubeSphere - 搭建 elasticsearch集群 及 kibana

Elasticsearch 7.X 进阶实战视频课上线

Elasticsearch 7.X 进阶实战视频课上线

Elasticsearch 7.X 进阶实战视频课上线

springboot 2.0 集成 kafka 2.6.2(集群) + elk 7.6.2(集群)