ElasticSearch高可用集群环境搭建和分片原理

高可用elasticsearch集群搭建 Elasticsearch(简称为ES)是一个开源的分布式搜索和分析引擎,构建在Apache Lucene搜索引擎库之上。它提供了一个强大的全文搜索和实时分析功能,适用于大规模的数据存储、检索和分析。 阅读详情

ElasticSearch高可用集群环境搭建和分片原理

1、ES是如何实现分布式高并发全文检索
2、简单介绍ES分片Shards分片技术
3、为什么ES主分片对应的备分片不在同一台节点存放
4、索引的主分片定义好后为什么不能做修改
5、ES如何实现高可用容错方案
6、搭建Linux上环境三台ES高可用集群环境

 

ES是如何解决高并发

ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心内容 分片机制、集群发现、分片负载均衡请求路由。

 

ES基本概念名词

Cluster

 

代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。

 

Shards

代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

 

replicas

代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

 

Recovery

代表数据恢复或叫数据重新分布,es在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。

 

 

ES为什么要实现集群

ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。

 

GET _cat/health

 

 

ES集群核心原理分析:

 数据存储。

1、每个索引会被分成多个分片shards进行存储,默认创建索引是分配5个分片进行存储。

      每个分片都会分布式部署在多个不同的节点上进行部署,该分片成为primary shards。    

   注意:索引的主分片primary shards定义好后,后面不能做修改。  

 

2、为了实现高可用数据的高可用,主分片可以有对应的备分片replics shards,replic shards分片承载了负责容错、以及请求的负载均衡。

  注意: 每一个主分片为了实现高可用,都会有自己对应的备分片,主分片对应的备分片不能存放同一台服务器上(单台ES没有备用分片的)。主分片primary shards可以和其他replics shards存放在同一个node节点上。

   

  在往主分片服务器存放数据时候,会对应实时同步到备用分片服务器:

  

  但是查询时候,所有(主、备)都进行查询。

    主的可以存放副的:

 

 

    Node1 :P1+P2+R3组成了完整 的数据! 分布式存储

 

 

EA核心存放的核心数据是索引!

如果ES实现了集群的话,会将单台服务器节点的索引文件使用分片技术,分布式存放在多个不同的物理机器上。 

分片就是将数据拆分成多台节点进行存放

在ES分片技术中,分为主(primary)分片、副(replicas)分片。这样做是为了容错性

5: 每个索引拆分5片存储

1:备份一份

 在ES中每一个主分片都对应一个副分片

   三个节点 6/3 为 2  每个节点存放两个分片

在创建索引时候,主分片数量定义好后是不能修改的

修改副的分片 number_of_replica 2  3个主分片6个备分片  一共9个

   

 

  官方建议 节点的平方数 !!

    

 

数据路由 

 

documnet routing(数据路由)

当客户端发起创建document的时候,es需要确定这个document放在该index哪个shard上。这个过程就是数据路由。

路由算法:shard = hash(routing) % number_of_primary_shards

如果number_of_primary_shards在查询的时候取余发生的变化,无法获取到该数据

画图演示
注意:索引的主分片数量定义好后,不能被修改

      

 计算的算法 取模时候 除数改变了 查询时候 怎么办?! 所以 不能乱改啊~   

 

 

 

集群环境的搭建

 

如果连接P0查询不到的话  会自动转发到另一台去查询。

  

    集群的搭建:核心思想无非就是 配置不同的节点id  配置形同集群名称

    4台服务器实现集群的话,会配置三个不同的elasticsearch.yml

 配置:    

vi elasticsearch.yml
cluster.name: myes ###保证三台服务器节点集群名称相同
node.name: node-1 #### 每个节点名称不一样 其他两台为node-2 ,node-3
network.host: 192.168.91.7 #### 实际服务器ip地址   实际项目外网ip 哦
discovery.zen.ping.unicast.hosts: ["192.168.91.7", "192.168.91.8","192.168.91.9"]

##多个服务集群ip
discovery.zen.minimum_master_nodes: 1

 

集群通信是走9300端口通信

 

注意如果你是虚拟机克隆data文件会导致数据不同步

报该错误解决办法  进入到data中 删除 node这个目录 重启就OK了

failed to send join request to master

因为克隆导致data文件也克隆呢,直接清除每台服务器data文件。

 

 

 

启动配置好的三台节点:

 

 随便访问一台主机: http://192.168.91.8:9200/_cat/nodes?pretty

 验证:

带 *  为master

如果某一台宕机了 可以自动选举~~ *会转移哦

ES分布式做的特别好~

 

 

 

 

 

 

 

 

   

   

 

posted @ 2019-01-21 02:56 toov5 阅读( ...) 评论( ...) 编辑 收藏
CentOS7下Elasticsearch高可用集群方案-完整部署记录(个人珍藏版) 本篇文章详细记录了CentOS7下Elasticsearch高可用集群方案-完整部署过程,可作为线上长期的实操手册。特在此分享,希望能帮助到有用到的朋友。 立即下载

相关推荐

SocraticLM: Exploring Socratic Personalized Teaching with Large Language Models

大型语言模型(LLM)被认为是推进智能教育的一项关键技术,因为它们展示了深入理解教学场景和为学生提供个性化指导的潜力。然而,当前个性化教学中基于LLM的应用主要遵循“问答”范式,学生被动地获得答案和解释。在本文中,我们提出了苏格拉底式教学模式(SocraticLM ),它实现了一种苏格拉底式的“发人深省”的教学范式,实现了真正的课堂教师的角色,让学生积极参与到真正掌握解决问题所需的思考过程中。

weixin_43961909的博客 2884

ElasticSearch学习笔记-第四章 ES分片原理以及读写流程详解

ES集群、ES分片原理、ES读流程详解、ES写流程详解

weixin_42584100的博客 4278

保姆级教程:用NFS把群晖NAS的文件夹挂到Ubuntu 22.04上,实现文件无缝共享

本文提供了一份详细的教程,指导用户如何通过NFS协议将群晖NAS的文件夹挂载到Ubuntu 22.04系统上,实现文件的无缝共享。文章对比了NFS与SMB协议的性能差异,并提供了群晖端和Ubuntu端的配置指南、高级参数优化、自动挂载方案以及生产环境中的实战技巧,帮助用户提升文件共享效率和系统稳定性。

weixin_29213827的博客 405

Elasticsearch集群如何实现高可用和一致性

ES 支持通过节点的自定义属性(如磁盘空间、机房等)来影响分片的分配。使用。

dxh9231028的博客 1982

IEC61850建模实战:从标准解读到ICD文件生成

本文详细介绍了IEC61850建模的实战过程,从标准解读到ICD文件生成,涵盖了变电站自动化系统的结构化数据模型设计。通过分层结构、标准服务映射和XML文件解析,帮助读者掌握电力系统智能电子设备的标准化建模方法,提升工程实施效率。

weixin_30823001的博客 416

风力发电机缺陷检测平台

风力发电机缺陷检测平台相关内容展示

weixin_39779415的博客 1111

ES高可用及集群管理

ES高可用及集群管理 Elasticsearch 是一个分布式、高扩展、高实时、RESTful 风格的搜索与数据分析引擎。 服务可用性:允许有节点停止服务 数据可用性:部分节点丢失,不会丢失数据 水平扩展 集群容错 一、分片 1、什么是分片及其作用 节点:一个运行中的ES实例成为一个节点; 集群:由一个或者多个拥有相同cluster.name配置的节点组成; 分片:分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。 ​ 一个索引可以存储

Soda_lw的博客 1521

【HAL库】STM32CubeMX开发----STM32F407----ETH+LWIP----TCPclient客户端

STM32F407开发板 为TCPclient客户端,PC端 为TCPserver服务端,相互之间的发送和接收实验。

MQ0522的博客 3048

ES是如何解决高可用

ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心数据分片机制、集群发现、分片负载均衡请求路由。ES的高可用架构,总体如下图:Cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。Shards代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以

大叶子不小的博客 3095

把数据库算力拉满的 ABAP CDS Table Function:从语法、权限到可运行样例的全景解析

文章摘要: 本文针对ABAP开发者探讨了CDS Table Function的应用场景与实现细节。当CDS View无法处理复杂计算(如窗口函数、递归等)时,可通过Table Function将逻辑下推到HANA数据库执行。关键点包括:1)CDS实体声明与AMDP实现的协作关系;2)多租户环境下的Client处理机制(@ClientHandling.type注解);3)激活与传输的阶段性特点可能导致的"暂不可用"问题;4)基于SFLIGHT的完整示例,展示如何定义Client依赖函数、实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 306

【光子 AI】AI Agent 知识体系深度研究报告

从理论基础到前沿应用:全面解析人工智能代理的核心架构、关键技术与发展趋势📅 2026 年 3 月 | 📊 深度研究报告 | 🔬 人工智能领域 | 📈 前沿技术分析**AI Agent(人工智能代理)**是一种能够感知环境、基于所获得的信息做出决策,并执行行动以影响该环境的软件系统。AI Agent 的设计旨在模仿或实现智能行为,它们可以在各种环境中操作,包括物理世界和虚拟空间。随着大语言模型(LLM)技术的突破性进展,AI Agent 正从实验室研究快速走向产业应用。根据 Gartner 发布的《2

AI天才研究院 177

Elasticsearch专栏-10.es集群读写过程及高可用

es集群读写原理

zjun1001的博客 1065

基于Simulink进行双向DC-DC变换器的仿真建模

特点双向性:可以将能量从一个电压等级转换到另一个,且方向可逆。效率高:通过合理的控制策略减少能量损失。应用广泛:如电池管理系统、混合动力汽车等。挑战拓扑选择:根据应用场景选择合适的电路结构(如buck-boost、full-bridge等)。控制策略:确保高效稳定运行的同时,适应负载变化。热管理:有效散热以保持长期可靠性。首先明确要模拟的任务内容。设计一个能够支持双向能量传输的变换器。根据输入输出电压要求确定合适的变换器拓扑。实现有效的控制策略来维持输出电压稳定。

xiaoheshang_123的博客 367

Elasticsearch高级(Shards、高可用集群搭建)

TODO

王小白来了 1858

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

分布式搜索引擎ES-elasticsearch入门

正排索引:相当于文档中的一条条记录;例子:汉语值得学习;汉语是语言;汉语学习视频;倒排索引:起源于实际应用中需要根据属性的值来查询记录。这种索引表的每一项都包括一个属性值和包含该属性值得各个记录地址。由于不是根据记录来确定属性,而是根据属性来确定记录的位置。可以记录文档的ids,词频跟位置例子:汉语值得学习;汉语是语言;汉语学习视频;单词文档ids词频TF;位置POS汉1,2,3语1,2,3值得11:1:<3>学习1,3是21:1;<3>言2。

TOMORROW6COME的博客 2051

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ElasticSearch基础3之高可用集群

ES为什么要实现集群 在单台ES服务器节点上,随着业务量的发展索引文件慢慢增多,会影响到效率和内存存储问题等。 我们可以采用ES集群,将单个索引的分片到多个不同分布式物理机器上存储,从而可以实现高可用、容错性等 ES是如何解决高并发 ES是一个分布式全文检索框架,隐藏了复杂的处理机制,内部使用 分片机制、集群发现、分片负载均衡请求路由。 Shards 分片:代表索引分片,es可以把一个...

xiaobo5264063的博客 740

ElasticSearch 集群

介绍了ElasticSearch 集群

凉茶铺的博客 2904

CSRedis集群配置实战:从零搭建高可用Redis集群环境

CSRedis是一款功能强大的.NET Redis客户端,支持.NET Core和.NET Framework 4.0+,提供同步和异步操作方式,特别适合构建高可用的Redis集群环境。本文将详细介绍如何使用CSRedis快速搭建稳定可靠的Redis集群,帮助新手用户轻松掌握集群配置的核心技巧。 ## 一、准备工作:环境与依赖 在开始集群配置前,确保你的开发环境满足以下要求: - .NET C

gitblog_01013的博客 1068

ElasticSearch 集群(搭建 分片配置 原理 ELK搭建 路由原理 脑裂 集群扩容)

ElasticSearch 集群集群1.1 搭建集群1.1.1 整体步骤1.1.2 拷贝副本1.1. 3 修改elasticsearch.yml配置文件1.1.4 执行授权1.1.5 启动三个节点1.2 使用Kibana配置和管理集群1.2.1 集群配置1.2.2 管理集群1.1-集群介绍1.2-ES集群相关概念1.3-kibina管理集群4.5-JavaAPI 访问集群4.6-分片配置4.7-路由原理4.8-脑裂 集群 1.1 搭建集群 Elasticsearch如果做集群的话Master节点至少三台

m0_46690280的博客 923

Elasticsearch集群环境搭建

一、ES集群管理 ES是如何解决高并发 ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心内容 分片机制、集群发现、分片负载均衡请求路由。 二、ES基本概念名词 Cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,...

小尾寒羊的博客 297

Elasticsearch 分布式原理全景解析

分布式设计:ES通过主分片+副本分片、节点角色分工、分片分配感知实现高可用、弹性、强一致架构主节点选举:采用分布式一致性算法,保障唯一主、避免脑裂容灾与扩展:多副本、跨机房部署、动态分片分配提升系统鲁棒性底层实现:高效的分片分配与主节点选举算法支撑亿级数据场景实战优化:合理配置、监控、自动化运维,才能让分布式优势最大化知其然,更知其所以然。掌握ES分布式原理,既能稳定支撑业务增长,也能高效应对复杂容灾与运维挑战。如需更深入的源码剖析或场景解读,欢迎留言交流!

IT技术学习与工作笔记分享 1325

linux服务-elasticsearch原理与安装

Elasticsearch(ES)是基于 Lucene 构建的分布式全文搜索引擎,核心特点是,广泛用于日志分析、全文检索、指标监控等场景。

梁正雄,乱七八糟的都研究研究 1133

elasticsearch分布式原理

如何查看节点属性?v集群应该至少有两个区域包含数据节点。除了主分片之外,每个 不是可搜索快照索引的索引都应该有每个主分片的至少一个副本。分片分配感知配置为避免将分片的所有副本集中在单个区域内。集群至少有三个候选节点。这些节点中至少有两个不是仅投票节点,均衡分配在至少三个区域中。客户端被配置为将其请求发送到多个区域中的节点,或者被配置为使用负载平衡器来平衡一组适当的节点之间的请求。

weixin_41063119的博客 170

ElasticSearch 集群管理

ElasticSearch 集群管理 集群介绍 集群:多个人做一样的事 分布式:多个人做不一样的事 为什么要集群,原来的项目都是单体架构,一旦机器挂了,那就不能进行工作了。若是我们用了三台机器,都存储一样的东西,这三个同时对外提供服务,一旦有一个挂了还不影响,这就是集群来解决高可用。集群还可以解决负载均衡的问题。 集群总结下:集群解决的问题就是:1、让系统高可用。2、分担请求压力。 但是以后业务数据越来越多,每个机器已经无法存储了,那怎么办? 不能是买个更好的机器吧,那也太土豪了吧,那我们就用很多个机器

weixin_43949154的博客 2875

SpringBoot2.0+ElasticSearch网盘搜索实现

SpringBoot2.0+ElasticSearch网盘搜索实现 1、ES是如何实现分布式高并发全文检索 2、简单介绍ES分片Shards分片技术 3、为什么ES主分片对应的备分片不在同一台节点存放 4、索引的主分片定义好后为什么不能做修改 5、ES如何实现高可用容错方案 6、搭建Linux上环境三台ES高可用集群环境 7、基于ES网盘搜索引擎...

art_code的博客 439
上一篇: SpringBoot2.0+ElasticSearch网盘搜索实现
下一篇: ELK分布式日志收集搭建和使用
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值