当前位置: 首页 > news >正文

ES集群搭建(仅供自己参考)

单节点问题:单机的elasticsearch做数据存储,面临的两个问题:海量的数据存储问题、单节点故障。

一个节点存储的数据是有限的。

  • 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点
  • 单点故障问题:将分片数据在不同节点备份(replica)

集群搭建的compose文件

version: '2.2'
services:es01:image: elasticsearch:7.12.1    #镜像container_name: es01            # 容器名称environment:- node.name=es01            #节点名称- cluster.name=es-docker-cluster    #所属那个集群,给了名字就会自动的配置在一起- discovery.seed_hosts=es02,es03    #关联的其他节点- cluster.initial_master_nodes=es01,es02,es03    #选举主节点- "ES_JAVA_OPTS=-Xms512m -Xmx512m"        #大小volumes:- data01:/usr/share/elasticsearch/data    #数据卷位置ports:- 9200:9200            #端口networks:- elastic                # 网络es02:image: elasticsearch:7.12.1container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- data02:/usr/share/elasticsearch/dataports:- 9201:9200networks:- elastices03:image: elasticsearch:7.12.1container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticports:- 9202:9200
volumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge

管理集群的软件:cerebro  https://github.com/cerebroapp/cerebro

之后是创建分片和备份分片,创建也是在cerebro上

三 、集群的脑裂问题:

1、集群节点的职责

四、新增和查询

1、新增:在集群上进行新增数据,集群会通过coordinating node(协调节点)计算把这个数据放到那个分片上

通过hash算法计算id得到一个值,然后这个值对shard分片数量取模得到一个分片的id。如果新增一个分片,那么shard值没变,那么始终得到不到新增分片的id。

说明:

  • _routing一般是新增数据的id
  • 算法与分片的数量有关,那么索引库一旦创建分片数量不能变化

新增流程:

2、查询:如果不是通过id具体的查询,那么在查询的时候不会走计算hash值,然后到相应的分片上去查。而是通过coordinating node(协调节点)将请求路由到所有分片,在每个分片上通过条件查询到相应的数据。再把相应的数据传到coordinating node(协调节点),协调节点将所有的数据进行一个整合,把整合数据返回用户。

五、故障的转移

当节点恢复的时候,它会将一个分片和一个备份重新分配给node1节点,使得每一个节点都能均衡的有分片。


http://www.mrgr.cn/news/67838.html

相关文章:

  • 递归-最大公约数(辗转相除法)
  • Kubernetes的基本构建块和最小可调度单元pod-0
  • Jetson Orin安装部署和使用(2)-远程控制和文件传输操作
  • Docker与Cgroups资源控制实战
  • 推荐一款强大的图像处理软件:Adobe Photoshop2025
  • 2024 - pathlinkR:差异分析 + 蛋白互作 + 功能富集网络可视化
  • 恢复rm -rf删除的数据
  • 源代码泄漏怎么办?SDC沙盒成为破局利器
  • UVM的callback机制
  • 网络规划设计师-(11)网络层
  • 上下文保护
  • 技术总结(二十二)
  • MySQL之事务
  • hive面试题,超详细解析。各类型专利top 10申请人,以及对应的专利申请数
  • python入门到精通知乎万赞推荐书籍《流畅的Python》,《流畅的Python》PDF免费下载
  • Hive中各种Join的实现
  • 【系统架构设计师】高分论文:论企业应用系统的分层架构风格
  • 数据结构之单链表(C语言)
  • linux基础知识
  • day-81 打家劫舍 II
  • 焊接覆层耐磨板行业全面且深入的分析
  • 【零基础学习CAPL】——XML工程创建与使用详解
  • uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
  • Java题目笔记(十四)Date +综合练习
  • ruoyi-vue集成tianai-captcha验证码
  • 如何将现有VUE项目所有包更新到最新稳定版