es集群原理与搭建

author author     2023-04-02     307

关键词:

参考技术A

查看集群健康状况:URL+ /GET _cat/health

Cluster

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

Shards

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

replicas

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

Recovery

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

(2)、ES为什么要实现集群

在单台ES服务器节点上,随着业务量的发展索引文件慢慢增多,会影响到效率和内存存储问题等。

我们可以采用ES集群,将单个索引的分片到多个不同分布式物理机器上存储,从而可以实现高可用、容错性等。

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

(3)、ES是如何解决高并发

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

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

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

1、每个索引会被分成多个分片shards进行存储,默认创建索引是分配5个分片进行存储。每个分片都会分布式部署在多个不同的节点上进行部署,该分片成为primary shards。

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

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

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

3、documnet routing(数据路由)

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

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

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

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

高可用视图分析(下图所示:上面的图,如果节点1与节点2宕机了,es集群数据就不完整了。下面图,如果节点1与节点2宕机了,es集群数据还是完整的)

(1)、服务器环境

准备三台服务器集群

| 服务器名称 | IP地址 |
| node-1 | 192.168.212.182 |
| node-2 | 192.168.212.183 |
| node-3 | 192.168.212.184 |

(2)、关闭防火墙

(3)、**** http://192.168.212.185:9200/_cat/nodes?pretty

*号表示为master节点

注意:

注意克隆data文件会导致数据不同步

报该错误解决办法 :

failed to send join request to master

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

es学习第十课,elasticsearch集群搭建

...支持分布式,所以,这课我们专门讲讲怎么搭建实现ES的集群部署。ES分布式原理 1、es分布式概念 主分片(Primaryshard)索引的子集,索引可以切分成多个分片,分布到不同的集群节点上。分片对应的是Lucene中的索引。默... 查看详情

java-es理论

...:第一节:原理与过程  1:底层  2:过程第二节:集群策略与搭建  1:分发策略  2:搭建第三节:对比  1:对比solr  2:对比数据库第四节:操作  1:rest,curl  2:java操作 第一节:原理与过程  1、... 查看详情

es搜索引擎集群模式搭建

...速,安装使用方便。二.相关概念  cluster  代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点通过选举产生,主从节点是对于集群内部来说的。ES的一个概念就是去中心化,字面上理解就是无中心节点,... 查看详情

69-日志分析系统elk-elasticsearch集群搭建和数据读写以及数据分片原理解析

Elasticsearch集群工作原理单机节点ES存在单点问题,可以实现Elasticsearch多机的集群ES节点分类Elasticsearch集群的每个节点的角色有所不同,但都会保存集群状态ClusterState的相关的数据信息节点信息:每个节点名称和地址索引信息:所有... 查看详情

es工作原理及如何构建集群(代码片段)

...安装docker镜像dockerpullelasticsearch:7.6.1es配置elasticsearch.yml#es集群名称cluster.name:elasticsearch-cluster#节点名称node.name:es-master-10#network.host:0.0.0.0#es部署在对应服务器的ipnetwork.publish_host:180.200.7.10http.port:9200transport.tcp.port:9300http.cors.enabled:tru... 查看详情

es集群搭建

...主要修改以下方面:  cluster.name:my-application  #集群名,各个节点要一致  node.name:node-01 &nb 查看详情

02es集群搭建(代码片段)

前言呵呵最近有一系列环境搭建的相关需求记录一下es三个节点:192.168.110.150,192.168.110.151,192.168.110.152150为master,151为slave01,152为slave02三台机器都做了trustedshell  es单节点docker搭建创建docker-compose.yml如下,然后docker-composeup-d启动es即可... 查看详情

02es集群搭建(代码片段)

前言呵呵最近有一系列环境搭建的相关需求记录一下es三个节点:192.168.110.150,192.168.110.151,192.168.110.152150为master,151为slave01,152为slave02三台机器都做了trustedshell  es单节点docker搭建创建docker-compose.yml如下,然后docker-composeup-d启动es即可... 查看详情

docker搭建es集群(超简单)(代码片段)

Docker搭建es集群(超简单)编写docker-compose.yml更改挂载目录的权限更改启动参数启动测试编写docker-compose.ymlversion:'2.2'services:es01:image:elasticsearch:7.7.0container_name:es01environment:-node.name=es01 查看详情

es集群搭建(代码片段)

每一个服务都将下面配置参数写入/home/sczbbx/es-1/elasticsearch-6.3.2/config文件下面的elasticsearch.yml配置最后,然后根据配置的文件路径创建文件夹,最后启动就行了cluster.name:my-applicationnode.name:node-192-168-0-125path.data:/home/sczbbx/es-1/datapat 查看详情

elasticsearch集群的简单搭建(代码片段)

环境说明:服务器(系统版本centos7)elasticsearch版本:elasticsearch-6.2.2elasticsearch目录:/home/soft/192.168.33.10master192.168.33.11masterdata192.168.33.12masterdata一、创建es运行帐号【三台机器都统一用户为es】useraddespasswdes二、创建数据目录与日志 查看详情

分布式缓存技术redis学习系列——redis高级应用(集群搭建集群分区原理集群操作)

...与锁、持久化)》本文我们继续学习redis的高级特性——集群。本文主要内容包括集群搭建、集群分区原理和集群操作的学习。Redis集群简介Redis集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel 查看详情

es集群环境搭建(代码片段)

服务器环境准备三台服务器集群服务器名称IP地址node-1192.168.1.182node-2192.168.1.183node-3192.168.1.184服务集群配置vielasticsearch.ymlcluster.name:myes###保证三台服务器节点集群名称相同node.name:node-1####每个节点名称不一样其他两台为node-1,node-2n... 查看详情

elasticsearch高可用原理

...检索框架,隐藏了复杂的处理机制,核心数据分片机制、集群发现、分片负载均衡请求路由。ES的高可用架构  ES基本概念名词Cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产... 查看详情

kettle集群搭建

KETTLE集群搭建说明:本文档基于kettle5.4一、集群的原理与优缺点1.1集群的原理        Kettle集群是由一个主carte服务器和多个从carte服务器组成的,类似于master-slave结构,不同的是’master’处理具体任... 查看详情

kettle集群搭建

KETTLE集群搭建 说明:本文档基于kettle5.4 一、集群的原理与优缺点1.1集群的原理        Kettle集群是由一个主carte服务器和多个从carte服务器组成的,类似于master-slave结构,不同的是’master’处... 查看详情

zookeeper集群的搭建与调试

...,大家有兴趣可以去查查,这里主要就是动手操作。搭建集群首先先看一下本次zk实验服务器的名称和IP情况,这里 查看详情

es集群搭建

参考技术A一、集群搭建1.前置操作若克隆已有的es虚拟机,一定要清空一下文件:2.配置集群,修改elasticsearch.yml#配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了cluster.name:imooc-es-cluster#每一个节点的名... 查看详情