
Linux之ES集群搭建
在单台ES服务器节点上,随着业务量的发展索引文件慢慢增多,会影响到效率和内存存储问题等。我们可以采用ES集群,将单个索引的分片到多个不同分布式物理机器上存储,从而可以实现高可用、容错性等。Elasticsearch集群要达到基本高可用,一般要至少启动3个节点,3个节点互相连接,单个节点包括所有角色,其中任意节点停机集群依然可用。因为集群选举算法奇数法则,所以至少需要三个节点。
一、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。
更多推荐
所有评论(0)