一、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。

Linux之ES集群搭建相关推荐

  1. linux 上elasticsearch集群搭建详解,手把手教学(tar下载包)

    1.安装jdk: 由于es是基于java的,所以先安装jdk: yum install java-1.8.0-openjdk* -y 此命令install结束后不用再去配置环境变量了,直接输入java ...

  2. es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路

    前不久,滴滴ES团队将维护的30多个ES集群,3500多个ES节点,8PB的数据,从2.3.3跨大版本无缝升级到6.6.1.在对用户查询写入基本零影响和改动的前提下,解决了ES跨大版本协议不兼容.文件 ...

  3. linux上elasticsearch集群搭建

    一,准备三台虚拟机 修改主机映射:vi/etc/hosts 192.168.***.*** 主机名 二,es启动时需要使用非root用户,所有创建一个用户 注:(***)为你定义的用户名字 usera ...

  4. elasticsearch 在linux环境的集群搭建

    搭建集群节点前,首先了解下节点的三个角色: 主结点:master节点主要用于集群的管理及索引 比如新增结点.分片分配.索引的新增和删除等. 数据结点:data 节点上保存了数据分片,它负责索引和搜索操 ...

  5. redis伪集群安装linux,redis伪集群搭建(亲测无坑)

    一.单机版安装部署,伪集群只需要操作前1-8步即可,再往下浏览找到:二.单机版-伪集群  安装部署继续搭建,如需设置密码参照第10步 1.安装基本工具 yum install -y gcc-c++ v ...

  6. linux redis5.0 集群搭建

    一.下载 wget http://download.redis.io/releases/redis-5.0.0.tar.gz 二.解压.编译 #解押到 /usr/local/ 文件夹 tar -zxv ...

  7. ES集群搭建主机规划

    1.准备条件 部署ElasticSearch集群(以下简称ES)的机器需需完成以下配置: 1.1 修改系统控制值(需将#user#替换为部署用户,如与已有的冲突,取较大值) sudo vi /etc/ ...

  8. ES集群搭建错误~Too many open files

    错误记录 (1) too many open files max file descriptors [4096] for elasticsearch process is too low, incre ...

  9. oracle nodemanage,Linux 下Weblogic集群搭建-04通过nodemanage进行节点的启动与关闭

    1.adminserver(10.0.5.51) .  node节点(ip:10.0.5.52) 2.首先通过web console的web管理端 , 新建一台机器 点击完成,添加服务器,.添加位于此 ...

  10. 多台es服务器搭建elasticsearch集群,es单机伪集群搭建,在一台服务器上以三个不同的端口模拟三台主机完成es伪集群搭建,windows和Linux操作方法一致

    目录 (一)es单机伪集群搭建 一.准备三台elasticsearch服务器(复制三个es目录) 二.修改每台服务器的配置 1.修改es配置文件 2.配置注意 (二)多台服务器es集群搭建: 1 安装 ...

最新文章

  1. java 策略模式会员_七:策略模式(不同等级会员打折算法)
  2. PHP程序员突破成长瓶颈
  3. 对Mapreduce代码进行单元测试
  4. FormView里用FindControl找不到控件的解决方法
  5. dart --- 简单的闭包
  6. Mini 容器学习笔记6——组件的获取(应用)
  7. C语言字符5,c语言总览5:字符输入和输出
  8. java jackson unicode_如何让Jackson JSON生成的数据包含的中文以unicode方式编码
  9. pandas 学习 —— 逻辑表达式与布尔索引
  10. 未能加载文件或程序集Tianyige.SqlServerDAL问题解决
  11. iOS开发学习之NSFetchedResultsController
  12. Python爬虫之起点中文网完本小说
  13. Linux 日志系统、auditd用户审计、kdump故障定位
  14. SQL server 数据库分离成功后,但还是压缩不了,.mdf和.ldf文件拒绝访问
  15. Koo叔说Shader-描边效果
  16. succi - 接小球游戏
  17. 有趣的数字(C++)
  18. 20220905 buffer overflow detected
  19. 万兆以太网选择6类线还是6A类线?
  20. 图灵对计算机行业的贡献论文,这届图灵奖得主究竟做了什么贡献?这篇1974年的论文给了我们答案...

热门文章

  1. 高德地图经纬度检索校验
  2. DNS,NS,TTL相互关系
  3. 计算机考研408真题和答案
  4. YOLOv3原理详解(绝对通俗易懂)2021-07-01
  5. python常用内置函数
  6. Node.js连接数据库
  7. WGS84 坐标系转到J2000坐标系
  8. 【SQL基础】SQLzoo练习
  9. Win7系统的电脑怎么录屏
  10. maven中使用MySQL