Linux之ES集群搭建

本文介绍了Elasticsearch集群的基本概念,强调了高可用性的重要性,通常需要至少3个节点。详细步骤包括:配置hosts,解压并创建ES软链接,配置elasticsearch.yml,关闭防火墙和SELinux,启动ES服务。在遇到如内存锁定和主节点未发现等问题时,提供了相应的解决方案。
摘要由CSDN通过智能技术生成

一、Elasticsearch集群简介

  在单台ES服务器节点上,随着业务量的发展索引文件慢慢增多,会影响到效率和内存存储问题等。我们可以采用ES集群,将单个索引的分片到多个不同分布式物理机器上存储,从而可以实现高可用、容错性等。Elasticsearch集群要达到基本高可用,一般要至少启动3个节点,3个节点互相连接,单个节点包括所有角色,其中任意节点停机集群依然可用。因为集群选举算法奇数法则,所以至少需要三个节点。ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。
  ES节点角色说明:

  • Master,集群管理
  • Voting,投票选举节点
  • Data,数据节点
  • Ingest,数据编辑节点
  • Coordinate,协调节点
  • Machine Learning,集群学习节点

二、搭建步骤

  因实验条件有限,本博文以3个节点为例搭建ES集群。集群规划如下:
在这里插入图片描述

1、各节点下载并安装es

  参照Linux之elasticsearch单机安装完成ES下载和基础环境准备,基础环境配置准备包括创建普通账户es,修改limits.conf、systcl.conf参数等。同时安装java环境,安装方式参照[Linux之JDK安装与升级]。(https://blog.csdn.net/carefree2005/article/details/111314687)

2、配置hosts

  集群各节点统一配置hosts文件,s131节点,s132,s133节点参照配置。

[root@s131 local]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.131 s131
192.168.0.132 s132
192.168.0.133 s133

3、解压es软件包并创建软连接

  各节点均按照如下步骤配置。

[es@s131 ~]$ tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz

[es@s131 ~]$ ln -s elasticsearch-7.13.2 es

4、配置elasticsearch.yml配置文件

  备份默认配置文件后,按照规划如下elasticsearch.yml配置文件:

[es@s131 es]$ cd config/
[es@s131 es]$ cat config/elasticsearch.yml
cluster.name: escluster
node.name: s131
node.master: true
node.data: true
path.data: /home/es/es/data
path.logs: /home/es/es/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.port: 9200
transport.tcp.port: 9300
network.host: 192.168.0.131
network.publish_host: 192.168.0.131
cluster.initial_master_nodes: [“s131”,“s132”,“s133”]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3s
discovery.zen.ping.unicast.hosts: [“192.168.0.131:9300”,“192.168.0.132:9300”,“192.168.0.133:9300”]

[es@s132 es]$ cat config/elasticsearch.
cat: config/elasticsearch.: No such file or directory
[es@s132 es]$ cat config/elasticsearch.yml
cluster.name: escluster
node.name: s132
node.master: true
node.data: true
path.data: /home/es/es/data
path.logs: /home/es/es/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.port: 9200
transport.tcp.port: 9300
network.host: 0.0.0.0
network.publish_host: 192.168.0.132
cluster.initial_master_nodes: [“s131:9300”,“s132:9300”,“s133:9300”]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3s
discovery.zen.ping.unicast.hosts: [“192.168.0.131:9300”,“192.168.0.132:9300”,“192.168.0.133:9300”]

[es@s133 es]$ cat config/elasticsearch.yml
cluster.name: escluster
node.name: s133
node.master: true
node.data: true
path.data: /home/es/es/data
path.logs: /home/es/es/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
http.port: 9200
transport.tcp.port: 9300
network.host: 0.0.0.0
network.publish_host: 192.168.0.133
cluster.initial_master_nodes: [“s131:9300”,“s132:9300”,“s133:9300”]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3s
discovery.zen.ping.unicast.hosts: [“192.168.0.131:9300”,“192.168.0.132:9300”,“192.168.0.133:9300”]

5、关闭防火墙和selinux

  在所有节点主机上执行。

# systemctl stop firewalld
# setenforce 0

6、启动es集群

  所有节点启动es服务。

[es@s131 es]$ ./bin/elasticsearch &
[es@s132 es]$ ./bin/elasticsearch &
[es@s133 es]$ ./bin/elasticsearch &

7、验证es集群

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  更多信息如下:
在这里插入图片描述

三、QA

1、启动时报错memory locking requested for elasticsearch process but memory is not locked

原因:elasticsearch.yml配置文件中设置了bootstrap.memory_lock: true,需要系统层面尽量使用内存,不使用swap。
解决方案:修改/etc/security/limits.conf
加入如下内容后保存
es soft memlock unlimited
es hard memlock unlimited

2、启动时报错master not discovered yet

详细报错信息如下:
在这里插入图片描述
原因:最初的配置中缺少初始化es参数配置
解决方案:
1、编辑配置文件,添加cluster.initial_master_nodes和network.publish_host:的参数配置,如上第4步骤中的配置为添加初始化参数配置;
2、删除data和logs目录
$rm -rf data logs
3、重启es服务
$pgrep -f Elasticsearch |xargs kill
$./bin/elasticsearch &
如果本博文有解释不到位的,请参考官网https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-discovery-bootstrap-cluster.html。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

恒悦sunsite

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

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

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

打赏作者

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

抵扣说明:

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

余额充值