首页 > 其他分享 >ElasticSearch高可用部署

ElasticSearch高可用部署

时间:2024-03-13 15:13:49浏览次数:20  
标签:可用 部署 47h 索引 ElasticSearch 分片 test elasticsearch 节点

简单说明

我们在部署ElasticSearch高可用集群时,要规划好集群的规模,每个节点的职责,规划好后续的水平扩展方案,再进行部署。

核心概念

  • Cluster:集群,由一个或多个 Elasticsearch 节点组成。
  • Node:节点,组成 Elasticsearch 集群的服务单元,同一个集群内节点的名字不能重复。通常在一个节点上分配一个或者多个分片。
  • Shards:分片,当索引上的数据量太大的时候,我们通常会将一个索引上的数据进行水平拆分,拆分出来的每个数据库叫作一个分片。
    在一个多分片的索引中写入数据时,通过路由来确定具体写入那一个分片中,所以在创建索引时需要指定分片的数量,并且分片的数量一旦确定就不能更改。
    分片后的索引带来了规模上(数据水平切分)和性能上(并行执行)的提升。每个分片都是 Luence 中的一个索引文件,每个分片必须有一个主分片和零到多个副本分片。
  • Replicas:备份也叫作副本,是指对主分片的备份。主分片和备份分片都可以对外提供查询服务,写操作时先在主分片上完成,然后分发到备份上。
    当主分片不可用时,会在备份的分片中选举出一个作为主分片,所以备份不仅可以提升系统的高可用性能,还可以提升搜索时的并发性能。但是若副本太多的话,在写操作时会增加数据同步的负担。
  • Index:索引,由一个和多个分片组成,通过索引的名字在集群内进行唯一标识。
  • Type:类别,指索引内部的逻辑分区,通过 Type 的名字在索引内进行唯一标识。在查询时如果没有该值,则表示在整个索引中查询。
  • Document:文档,索引中的每一条数据叫作一个文档,类似于关系型数据库中的一条数据通过 _id 在 Type 内进行唯一标识。
  • Settings:对集群中索引的定义,比如一个索引默认的分片数、副本数等信息。
  • Mapping:类似于关系型数据库中的表结构信息,用于定义索引中字段(Field)的存储类型、分词方式、是否存储等信息。Elasticsearch 中的 Mapping 是可以动态识别的。
    如果没有特殊需求,则不需要手动创建 Mapping,因为 Elasticsearch 会自动根据数据格式识别它的类型,但是当需要对某些字段添加特殊属性(比如:定义使用其他分词器、是否分词、是否存储等)时,就需要手动设置 Mapping 了。一个索引的 Mapping 一旦创建,若已经存储了数据,就不可修改了。
  • Analyzer:字段的分词方式的定义。一个 Analyzer 通常由一个 Tokenizer、零到多个 Filter 组成。
    比如默认的标准 Analyzer 包含一个标准的 Tokenizer 和三个 Filter:Standard Token Filter、Lower Case Token Filter、Stop Token Filter。

集群节点

下面简单介绍下部署高可用的ES集群时,各个节点的职责:

master节点

也叫主节点,主节点负责创建索引、删除索引、分配分片、追踪集群中的节点状态等工作。Elasticsearch 中的主节点的工作量相对较轻。

data节点

数据节点,负责数据的存储和相关具体操作,比如索引数据的创建、修改、删除、搜索、聚合。所以数据节点对机器配置要求比较高,首先需要有足够的磁盘空间来存储数据,其次数据操作对系统 CPU、Memory 和 I/O 的性能消耗都很大。
通常随着集群的扩大,需要增加更多的数据节点来提高可用性。通过在配置文件中设置 node.data=true 来设置该节点成为数据节点。

协调节点

协调节点,是一种角色,而不是真实的 Elasticsearch 的节点,我们没有办法通过配置项来配置哪个节点为协调节点。集群中的任何节点都可以充当协调节点的角色。
当一个节点 A 收到用户的查询请求后,会把查询语句分发到其他的节点,然后合并各个节点返回的查询结果,最好返回一个完整的数据集给用户。
在这个过程中,节点 A 扮演的就是协调节点的角色。由此可见,协调节点会对 CPU、Memory 和 I/O 要求比较高

部署架构

这里,我们部署5节点集群时,规划部署架构图可以如下所示,协调节点可以配置为2个即可:

root@test:~# kubectl  get pod -n es-test
NAME                                          READY   STATUS    RESTARTS   AGE
elasticsearch-test-coordinating-only-0        1/1     Running   0          47h
elasticsearch-test-coordinating-only-1        1/1     Running   0          47h
elasticsearch-test-data-0                     1/1     Running   0          47h
elasticsearch-test-data-1                     1/1     Running   0          47h
elasticsearch-test-data-2                     1/1     Running   0          47h
elasticsearch-test-data-3                     1/1     Running   0          47h
elasticsearch-test-data-4                     1/1     Running   0          47h
elasticsearch-test-kibana-659847d54d-tk2n7    1/1     Running   0          47h
elasticsearch-test-master-0                   1/1     Running   0          47h
elasticsearch-test-master-1                   1/1     Running   0          47h
elasticsearch-test-master-2                   1/1     Running   0          47h
elasticsearch-test-metrics-5b7cb7b9cf-7vd68   1/1     Running   0          47h

标签:可用,部署,47h,索引,ElasticSearch,分片,test,elasticsearch,节点
From: https://www.cnblogs.com/yuhaohao/p/18070672

相关文章

  • Rancher怎么设置把日志发送给elasticsearch
    搭建elascsearch集群不详述配置日志发送打开日志Rancher配置日志发送其实时在node启用了Daemonset使用fluentd进行日志收集#kubectlgetdaemonset-ncattle-loggingNAMEDESIREDCURRENTREADYUP-TO-DATEAVAILABLEN......
  • ChatGLM3本机部署
    环境配置参照官方说明,创建虚拟python环境,并安装所需部署包。说明https://github.com/THUDM/ChatGLM3/blob/main/composite_demo/README.md本地模型加载1、先按照官方指引,将模型下载在本地。2、修改模型加载地址。MODEL_PATH和TOKENIZER_PATH,都修改注意:通过修改client.py......
  • 使用kubeadm部署Kubernetes 1.26及其它版本
    1.系统配置环境信息:系统:CentOSLinuxrelease7.6.1810(Core)k8s版本:1.26.0(可自己选择)IP主机名规划角色192.168.223.123auto-inspaction-1master192.168.223.68auto-inspaction-0node192.168.223.73auto-inspaction-2node在各个主机上完成下......
  • 一键开启 GPU 闲置模式,基于函数计算低成本部署 Google Gemma 模型服务
    作者:王骜本文介绍如何使用函数计算GPU实例闲置模式低成本、快速的部署GoogleGemma模型服务。背景信息Google在2024年02月21日正式推出了自家的首个开源模型族Gemma,并同时上架了四个大型语言模型,提供了2B和7B两种参数规模的版本,每种都包含了预训练版本(base模......
  • docker-compose 部署gitlab
    主机ip:192.168.1.139[root@localhostgitlab_docker]#catdocker-compose.ymlversion:'3.1'services:gitlab:image:'gitlab/gitlab-ce:latest'container_name:gitlab#随着docker重启自动启动restart:alwaysenvironment:......
  • docker-compose 部署apollo
    apollo-1.9.2docker-compose.yamlversion:'3'services:#模拟一个正常的mysql数据库mysql8:image:mysql:5.7restart:alwayscontainer_name:mysqlports:-3306:3306volumes:-./databases/mysql/logs:/var/log/mysql......
  • docker-compose 部署nacos
    version:'3'services:#模拟一个正常的mysql数据库mysql8:image:mysql:5.7restart:alwayscontainer_name:mysqlports:-3306:3306volumes:-./databases/mysql/logs:/var/log/mysql-./databases/mysql/data:/v......
  • Ubuntu 20.04 部署 MinIO
    MinIO是一款基于ApacheLicensev2.0开源协议的分布式文件系统(或者叫对象存储服务),可以做为云存储的解决方案用来保存海量的图片、视频、文档等。由于采用Golang实现,服务端可以工作在Windows、Linux、OSX和FreeBSD上。配置简单,基本是复制可执行程序,单行命令就可以运行起来。M......
  • 如何下载Nginx,部署并设置自启动
    Nginx安装:将程序里的Nginx压缩包进行解压,并将里面的conf文件进行替换将前端打好的包,放在Nginx目录下的html文件夹下面,并在conf文件配置好root的路由地址例如:nginx-1.24.0/html/life/dist需要创建在原来Nginxhtml目录下创建一个life文件夹,然后将前端打包的dist放进去配......
  • 【快捷部署】002_Flink
    Flink一键安装(本地模式)install-flink.sh脚本内容#!/bin/bash####变量###执行脚本的当前目录mydir=$(cd"$(dirname"$0")";pwd)echo$mydir#flink安装目录flink=/flink#检查点目录cp=$flink/checkpoints/#保留点目录sp=$flink/savepoints/#tasknumber数量ta......