Elasticsearch框架基础概念

2023-10-26

Elasticsearch(ES)是一个基于Lucene构建开源分布式搜索引擎并提供Restful接口。

 

Es是一个分布式文档数据库(JSON数据格式存储,类似MongoDB),JSON中的每个字段数据都可作为搜索条件,并且能够扩展至数以百计的服务器存储以及处理PB(PetaByte)级的数据。可在短时间内存储、搜索和分析大量的数据。

 

PB级级别: 拍字节(Petabytes),计算机存储容量单位,也常用PB来表示。1PB=1024TB==2^50字节。

Es优势:

横向可扩展性

          只需增加服务器,修改配置后启动Es就可并入集群

分片机制提供更好的分布性

          同一个索引分成多个分片(sharding),这点类似于HDFS的块机智,分别治理可提升处理效率

高可用

          提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器在宏碁的情况下,集群仍旧可以照常运行,并会把服务器宏碁丢失的数据信息复制恢复到其他可用节点上

Elasticsearch应用场景:

大型分布式日志分析系统ELK(elasticsearch(存储日志)+ logstash(收集日志)+ kibana(展示数据))。

Es存储结构:

Es是文件存储,面向文档型数据库,类似于MongoDB,用JSON作为文档序列化的格式

Es与数据库区别:

关系数据库 => 数据库(Database) => 表(Table) => 行(Row) => 列(columns) Elasticsearch=> 索引(index) => 类型(Type) => 文档 (Documents) => 字段(Fields)  

#注意:从ES 7.0.0开始,移除Type(类型)这个概念,Type 字段那里变为固定值 _doc Elasticsearch=> 索引(index) => _doc => 文档 (Documents) => 字段(Fields)

Es版本控制:

1.为什么要进行版本控制
    为了保证数据在多线程操作下的准确性
2.内部版本控制和外部版本控制
    内部版本控制: _version自增长,修改数据后,_version会自动+1
    外部版本控制:为了保持_version与外部版本控制的数值一致,使用version_type=external检查数据当前的version值是否小于请求中的version值

3.悲观锁和乐观锁

悲观锁:每次获取据时都会上锁,会造成线程阻塞
         底层实现:开启事务,启用锁机制
乐观锁:更新数据时候会判断在此期间是否有人更新过。
         底层实现:1.使用版本号 2.使用时间戳

9200和9300端口的区别:

9200端口: ES节点和外部通讯使用,暴露ES Restful接口端口号
9300端口: ES节点之间通讯使用,TCP协议、ES集群之间通讯端口号

倒排索引:

    把文档ID对应到关键词的映射转换为关键词到文档ID的映射,每个关键词都对应着一系列的文档,这些文档中都出现这个关键词。根据关键词查找文档ID迅速找出相关文档

ES如何解决高并发:

ES是一个分布式全文检索框架,隐藏了复杂的处理机制,内部使用分片机制、集群发现、分片负载均衡请求路由
Shards分片:代表索引分片,ES可以把一个完整的索引分成多个分片,好处是可以把一个大的索引拆分成多个,分布到不同节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
Replicas副本:代表索引副本,ES可以设置多个索引的副本。
副本的作用:
    1.提高系统的容错性,某个节点某个分片损坏或丢失时,可以从副本中恢复
    2.提高ES查询效率,ES会自动对搜索请求进行负载均衡

ES集群核心原理分析:

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

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

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

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

          2.每一个主分片为了实现高可用,都会有自己对应的副本,主分片对应的副本不能存放在同一台服务器上,主分片可以和其他副本存放在同一个Node节点上

如果此时Node-1节点是leader,Node-1节点down掉,此时会从(Node-2、Node-3)中选举一个节点作为一个Leader,不管某个节点挂掉,都能保证数据不丢失。除非所有节点全部down机

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch框架基础概念 的相关文章

随机推荐

  • 数据库——SQL语句(其它)

    目录 1 数据类型 2 查询条件 1 数据类型 数据类型 含义 CHAR n CHARACTER n 长度为n的定长字符串 VARCHAR n CHARACTERVARYING n 最大长度为n的变长字符串 CLOB 字符串大对象 BLOB
  • 基于体系结构架构设计-架构真题(十五)

    基于体系结构开发设计 Architecture Base Software Design ABSD 是指构成体系结构的 组合驱动 ABSC方法是一个自项向下 递归细化的方法 软件系统的体系结构通过该方法细化 直到能产生 产品 功能需求和设计
  • CSS实现悬浮提示(通用)

    没有废话 先看效果 为id选择器 如果有id可以直接确认到指定控件最好 如果class固定也可以只通过class选择器指向控件 不会取的也可以通过浏览器检查页面找到 代码如下 deep xmly ant select selection r
  • matlab 集成学习方法,集成学习(ensemble learning)

    本章参考西瓜书第八章编写 从个体和集成之间的关系出发 引出了集成学习的遵循的两大标准 基学习器的准确定和多样性 然后开始介绍具体的集成学习算法 串行的Boosting和并行的Bagging 前者通过对错判训练样本重新赋权来重复训练 以提高基
  • 统计机器学习---主成分分析(PCA)

    主成分分析的基本了解 主成分分析方法 是一种使用最广泛的数据降维算法 PCA的主要思想是将高维的特征映射到k维上 这k维就是主成分 并能保留原始变量的大部分信息 这里的信息是指原始变量的方差 如果用坐标系进行直观解释 一个坐标系表示一个变量
  • Air724+HC32L176做的电能集中器——JSY-1039单相4G集中器

    很多朋友在很多地方都听到过 集中器 但是对集中器还没有隔概念 那么什么是集中器呢 问 什么是集中器 集中器 concentrator device 是连接终端 计算机或通信设备的中心连接点设备 它成为电缆汇合的中心点 在若干终端密集区内 通
  • virtualbox 主机ping不通虚拟机解决办法

    场景描述 virtualbox虚拟机可以ping通主机和外网 但是主机一直无法ping通虚拟机ip 10 0 2 15 虚拟机的网络设置为nat 自己添加的nat网络 这样可以使得不通的虚拟机ip不一样 否则都选择NAT网络地址转发这个选项
  • 用deconstructSigs来做cosmic的mutation signature图

    用deconstructSigs来做cosmic的mutation signature图 作者的英文文档对这个包的用法描述的非常清楚 我只是记录一下自己学习该包用法的一点感悟 安装并加载必须的packages 如果你还没有安装 就运行下面的
  • Mac电脑使用:桌面底部莫名出现白色输入框解决的解决办法

    转自 https blog csdn net CC1991 article details 82965981 关闭Finder快速搜索输入框的方法 用鼠标单击输入框 点击进去 然后按电脑键盘的 Esc 键 即可关闭这个输入框
  • 离散特征和连续特征混合_混合蛋白和特征

    Java语言的开发人员精通C 和其他包含多重继承的语言 从而使类可以从任意数量的父级继承 多重继承的问题之一是无法确定派生自哪个父继承功能 这个问题称为菱形问题 请参阅参考资料 多重继承中固有的菱形问题和其他复杂性启发了Java语言设计人员
  • Docker 进入启动容器

    在使用 d参数时 容器启动后会进入后台 用户无法看到容器中的信息 也无法进行操作 这个时候如果需要进入容器进行操作 有多种方法 包括使用官方的attach或exec命令 以及第三方的nsenter工具等 1 attach命令 attach命
  • Linux下载及配置

    方法一 我们可以来到vm ware的官网 下载一个vm ware16 pro的模拟器 之后在下载完vm ware之后 我们可以去到centOS的官网 下载一个centOS 当然你也可以选择其他的linux的发行版 当然官网的下载速度是很慢的
  • MATLAB 绘制动态正弦函数

    一 动态正弦函数 动态正弦函数 二 MATLAB 绘制动态正弦函数代码 clear clc close all Np 100 空间点数 dx 2 pi Np 步长 x 0 dx 6 pi x 范围 f1sin sin x f1cos cos
  • LVGL视频课程更新啦,基于lvgl v8.2版本,课程适配多个平台、多款板子

    视频教程观看 百问网LVGL v8 系列课程 韦东山 监制 教程基于lvgl v8 2版本 课程适配多个平台 多款板子 百问网LVGL v8 视频课程 韦东山 监制 教程基于lvgl v8 2版本 课程适配多个平台 多款板子 视频学习地址
  • mysql集群 配置Keepalived+mm

    集团公司已经在oracle方向有成熟的几十套环境 但是为了节约成本 要尝试下mysql下面先用两台linux x86 Red Hat Enterprise Linux Server release 5 4 Tikanga 和linux6 3
  • O-RAN专题系列-37:管理面-WG4.MP.V07-规范解读-第3章-启动安装流程:NETCONF会话的建立、维护、关闭

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122498392 目录 第3章 Sta
  • 计算机硬件基础——第一章:计算机系统概述

    目录 计算机发展历史 第一代 电子管计算机时代 1946 1957 其主要特点是采用电子管作为基本器件 第二代 晶体管计算机时代 1958 1964 这时期计算机的主要器件逐步由电子管改为晶体管 第三代 集成电路计算机时代 1965 197
  • 旧视频调整为4k视频提高分辨率Topaz Video Enhance AI

    Topaz Video Enhance AI是Mac上的提升视频分辨率的工具 也是拍摄出色画面 并将其变得完美方法 借助软件Topaz Video Enhance AI 可以将您的素材从标清转换为高清 并不会发生模糊 且会得到质量的提升 非
  • Java并发编程系列 - 互斥锁:解决原子性问题

    Java并发编程系列 互斥锁 解决原子性问题 原子的意思代表着 不可分 那么如果我们要保证原子性就必须满足 同一时刻只有一个线程执行 称之为互斥 如果我们能够保证对 共享变量的修改是互斥的 那么 无论是单核 CPU 还是多核 CPU 就都能
  • Elasticsearch框架基础概念

    Elasticsearch ES 是一个基于Lucene构建开源分布式搜索引擎并提供Restful接口 Es是一个分布式文档数据库 JSON数据格式存储 类似MongoDB JSON中的每个字段数据都可作为搜索条件 并且能够扩展至数以百计的