ElasticSearch7.x集群搭建详细步骤

导读:本篇文章讲解 ElasticSearch7.x集群搭建详细步骤,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


前言

文章详细介绍了在 Centos7 环境下搭建 ES 7.9.0 集群。
部署ES集群,三台机器同样的操作


一、准备环境

采用三台 CentOS7.9 部署Elasticsearch集群。

系统 节点名称 IP地址
centos 7.9 node01 192.168.60.201
centos 7.9 node02 192.168.60.202
centos 7.9 node03 192.168.60.203

二、Elasticsearch集群搭建

1.安装JDK

Elasticsearch是基于Java开发是一个Java程序,运行在Jvm中,所以第一步要安装JDK。
详细请移步 :
Centos7 安装JDK1.8详细过程

2.下载elasticsearch

https://www.elastic.co/cn/downloads/elasticsearch,是ELasticsearch的官方站点,如果需要下载最新的版本,进入官网下载即可。可以下载到本地电脑然后再导入CentOS中,也可以直接在CentOS中下载。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.0-linux-x86_64.tar.gz

3.安装elasticsearch

tar -zxvf elasticsearch-7.9.0-linux-x86_64.tar.gz 

4.配置目录

安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径

/usr/local/src/elasticsearch-node01/config/elasticsearch.yml 			#elasticsearch的配置文件                           
/usr/local/src/elasticsearch-node01/config/jvm.options					#JVM相关的配置,内存大小等等

/usr/local/src/elasticsearch-node01/	# elasticsearch 安装目录
/data/elk1/data                         # 数据存放路径
/data/elk1/logs							# 日志存放路径

5.创建用于存放数据与日志的目录

数据文件会随着系统的运行飞速增长,所以默认的日志文件与数据文件的路径不能满足我们的需求,需要手动创建日志与数据文件路径。

mkdir -p /data/elk1/data
mkdir -p /data/elk1/logs

6.集群配置

vim /usr/local/src/elasticsearch-node01/config/elasticsearch.yml
cluster.name: my-application                       # 集群名称
node.name: node-1                                  # 节点名称,仅仅是描述名称,用于在日志中区分

#是不是有资格竞选主节点
node.master: true 

#是否存储数据
node.data: true

path.data: /data/elk1/data                 		   # 数据的存放路径
path.logs: /data/elk1/logs                         # 日志的存放路径

network.host: 192.168.60.201                       # 当前节点的IP地址
http.port: 9200                                    # 对外提供服务的端口,9300为集群服务的端口
#添加如下内容
#culster transport port
transport.tcp.port: 9300
transport.tcp.compress: true

discovery.seed_hosts: ["192.168.60.201:9300", "192.168.60.202:9300", "192.168.60.203:9300"]       		# 集群每个节点IP地址。
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]		     #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
discovery.zen.minimum_master_nodes: 2              # 为了避免脑裂,集群节点数最少为 半数+1

#只要指定数量的节点加入集群,就开始进行恢复
gateway.recover_after_nodes: 2
#如果期望的节点数量没有达标,那么会等待一定的时间,然后就开始进行shard recovery,默认是等待5m
gateway.recover_after_time: 5m
#要求必须有多少个节点在集群中,当加入集群中的节点数量达到这个期望数值之后,每个node的local shard的恢复就会理解开始,默认的值是0,也就是不会做任何的等待
gateway.expected_nodes: 2

#查询结果在分片上找到的条目超过了限定的10000个,官网限制在10000是为了其性能考虑的。需要调大search.max_buckets这个参数。
search.max_buckets: 90000000

#es的查询参数限制,默认是限制只能传入1024个参数
indices.query.bool.max_clause_count: 10240
#将阻止主副本分片被分配到同一台物理机,提高可用性。
cluster.routing.allocation.same_shard.host:true

#ES默认开启了内存地址锁定,为了避免内存交换提高性能。但是Centos6不支持SecComp功能,启动会报错,Centos7支持
bootstrap.memory_lock: true
#设置是否压缩tcp传输时的数据,默认为false,不压缩。 
transport.tcp.compress: true
# 是否支持跨域
http.cors.enabled: true
# *表示支持所有域名
http.cors.allow-origin: "*"

三台机器不一样的配置点如下

node.name: node-1      #192.168.60.201
node.name: node-2      #192.168.60.202
node.name: node-3      #192.168.60.203

network.host: 192.168.60.201	#192.168.60.201
network.host: 192.168.60.202	#192.168.60.202
network.host: 192.168.60.203	#192.168.60.203

7.JVM配置

由于Elasticsearch是Java开发的,所以可以通过/etc/elasticsearch/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
不过其中还是有两项最重要的-Xmx1g-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。

vim /usr/local/src/elasticsearch-node01/config/jvm.options
-Xms1g   修改为 ===>  -Xms2g
-Xmx1g   修改为 ===>  -Xmx2g

设置为物理内存一半最佳,可根据服务器内存去选择调。

ElasticSearch内存调优详情,请移步 : ElasticSearch内存调优

8.使用ROOT账户执行以下命令

elasticsearch的相关配置已经完成,下面需要启动elasticsearch集群。但是由于安全的考虑,elasticsearch不允许使用root用户来启动,所以需要创建一个新的用户,并为这个账户赋予相应的权限来启动elasticsearch集群。

添加用户

useradd elk

修改ES目录权限

chown -R elk:elk /usr/local/src/elasticsearch-node01/
chown -R elk:elk /data/elk1

9.需要修改以下配置文件

vim /etc/sysctl.conf
vm.max_map_count=655360   #末尾添加一行 

加载参数

sysctl -p

加载成功显示 :
在这里插入图片描述

10.启动服务

需切换为elk用户

su elk

启动服务(当前的路径为:/usr/local/src/elasticsearch-node01/)

./bin/elasticsearch

后台运行es :

nohup ./bin/elasticsearch >>elasticsearch.log &

验证服务是否正常运行

curl localhost:9200

正常运行显示以下结果 :
在这里插入图片描述

  • 其他两台服务器按照以上操作即可。

11. ElasticSearch IK分词器插件的安装

12. Elasticsearch jieba 分词插件的安装

13. Elasticsearch-head插件的安装

14. Kibana 7.9.0插件的安装

15. ElasticSearch 修改各节点的分片上限

16. ElasticSearch 返回值数量超过10000条解决方案

17. 使用 curl 命令操作Elasticsearch


总结

如果此篇文章有帮助到您, 希望打大佬们能关注、点赞、收藏、评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88135.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!