ElasticSearch view
基础知识类
elasticsearch和数据库之间区别?
elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。
数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于关系复杂、数据一致性要求高的业务场景。
elasticsearch和核心组件包含哪些?
节点(Node):elasticsearch集群中一个服务器实例,负责存储数据、处理请求等,根据角色不同可分为主节点、数据节点、协调节点等。
集群(Cluster):由一个或多个节点组成的elasticsearch实例的集合,用于存储和管理数据。
索引(Index):文档的集合,类似于关系型数据库中的数据库。
类型(Type):一个索引对应一种文档类型。
文档(Document):elasticsearch中存储的基本单位,以JSON格式表示。
什么是elasticsearch中的“倒排索引”?
正向索引:根据文档查询其中包含的词。
倒排索引:建立一个词到文档的映射关系。
具体来说:
每个词对应一个词典项,词典项中包含了改词的所有文档列表,以及每个文档中改词出现的频率、位置等信息。当用户进行搜索时,elasticsearch会根据查询在词典中查找对应的文档列表,从而快速定位包含该词的文档,从而提高效率。
集群管理与监控类
如何查看elasticsearch集群的健康状态?
curl -X GET “localhost:9200/_cluster/health” 813
green:主分片和副本分片都正常分配。
yellow:主分片分配成功,但副本分片未分配,可能存在节点故障或网络问题导致副本未就绪。
red:主分片未分配,此时部分数据不可用,集群处于异常。
elasticsearch集群中主分片和副本分片的作用是什么?如何配置它们的数量?
主分片:每个索引的文档都会被分配到一个主分片中,主分片负责存储实际的数据。
一个索引可以有多个主分片,主分片的数量在索引创建时确定,并且不能更改。
主分片的数量应根据预计的数据量和集群的节点容量来确定,建议:主分片数量最多不要超过集群中节点的数量,避免单个节点分配过多主分片而造成资源紧张。
副本分片:为主分片的副本,用于高可用性和容错性。
当某个主分片所在的节点发生故障时,副本分片可以提升为主分片继续提供服务。同时也能够分担读请求,提高搜索和查询效率。
副本分片的数量可以在索引创建后动态调整。
案例:在不影响业务的情况下最多可以容忍几台服务器宕机?
如果你要容忍N台服务器故障,集群需要2N+1台服务器,故高可用集群都采用奇数台服务器。
1)5台服务器的最大允许宕机服务器数是多少?
2n+1=5---->n=2
2)6台服务器的最大允许宕机服务器数是多少?
2n+1=6---->n=2
如何监控elasticsearch集群的性能指标?
使用elasticsearch自带的监控API:
/_cat:API可以用于获取集群、节点、索引等基本信息。
_cat/indices:查看索引的健康状态、文档数量、存储大小。
_cat/nodes:查看节点的状态、CPU使用率、内存使用率等。
_nodes/status:获取节点的详细统计信息(含索引、分片、缓存、线程池等)。
第三方监控工具:Prometheus + Grafana。
prometheus可以收集elasticsearch的各种指标数据,包含JVM堆内存使用率、索引和搜索的吞吐量、分片分配情况等。
通过Grafana可视化这些数据,及时发现潜在的性能瓶颈和问题。
性能优化与故障处理
如何优化elasticsearch的搜索性能?
合理设置索引的分片和副本数量:
根据数据量和集群资源合理配置主分片数和副本数,避免分片过多或过少。
优化查询语句:
采用更高效的查询方式。
例如避免使用通配符查询(如*)开头的查询方式。
调整java堆内存大小:
elasticsearch运行在jvm上,适当的堆内存大小对性能至关重要。
通常建议将堆内存大小设置为系统物理内存的一半即可。且不超过32GB,避免降低性能。
硬件升级和优化:
对于高并发、大数据量的场景,可以通过增加节点、升级服务器硬件(如,CPU\内存\SSD磁盘等)来提升集群的整体性能。
当elasticsearch节点出现故障或集群为red时,如何进行故障排查?
收集故障信息:
查看elasticsearch的日志文件,日志文件通常位于logs目录下,所以从中获取节点故障的错误信息、异常堆栈等,初步判断故障原因。
使用curl -X GET “localhost:9200/_cluster/health”|jq查看集群健康状态,确保集群状态为red的具体原因(如主分片未分配等)。
检查节点连接和网络状况:
确认故障节点是否可以正常通信,检查网络连接是否正常,是否有网络分区或其他网络故障导致节点无法通信。
可通过ping命令测试节点之间的连通性,或使用telnet测试节点间的端口是否开放。
检查硬件资源:
查看故障节点的CPU、内存、磁盘等硬件资源使用情况,是否存在资源被耗尽的情况。
采用top/free -m/df -h等命令查看硬件资源状态。
根据故障原因进行恢复操作:
节点硬件故障(磁盘损坏):更换硬件并更新启动节点。
网络故障:修复网络连接后,集群会自动进行数据恢复和分片分配。
主分片未分配:根据具体情况,如增加副本数、调整分片分配策略等来解决。
相关文章:

ElasticSearch view
基础知识类 elasticsearch和数据库之间区别? elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。 数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于…...

list的使用,及部分功能的模拟实现(C++)
目录(文章中"节点"和"结点"是同一个意思) 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 1.2.6 list…...

联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署
直接上手搓了: conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…...

[Spring] Gateway详解
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

音叉模态分析
目录 0 序言 1 自由状态下模态求解 1.1 添加模态项目 1.2 生成网格 1.3 设置最大模态阶数 1.4 求解 1.5 结果查看 1.6 结果分析 2 音叉能否释放频率440Hz的音调 3 预应力模态求解 3.1 静态结构分析 3.1.1 添加静态结构项目 3.1.2生成网格 3.1.3添加边界条件 3.1…...

BW AO/工作簿权限配置
场景: 按事业部配置工作簿权限; 1、创建用户 事务码:SU01,用户主数据的维护,可以创建、修改、删除、锁定、解锁、修改密码等 用户设置详情页 2、创建权限角色 用户的权限菜单是通过权限角色分配来实现的 2.1、自定…...

C++ 字母大小写转换两种方法统计数字字符的个数
目录 题目: 代码1: 代码2: 题目描述输入一行字符,统计出其中数字字符的个数。 代码如下: 判断⼀个字符是否是数字字符有⼀个函数是 isdigit ,可以直接使⽤。 代码如下: 题目: 大家都知道…...

如何使用 ChatBox AI 简化本地模型对话操作
部署模型请看上一篇帖子:本地部署DeepSeek教程(Mac版本)-CSDN博客 使用 ChatBox AI 简化本地模型对话操作: 打开 ChatBox AI 官网:Chatbox AI官网:办公学习的AI好助手,全平台AI客户端…...

前端面试笔试题目(一)
以下模拟了大厂前端面试流程,并给出了涵盖HTML、CSS、JavaScript等基础和进阶知识的前端笔试题目,以帮助你更好地准备面试。 面试流程模拟 1. 自我介绍(5 - 10分钟):面试官会请你进行简单的自我介绍,包括…...

Docker Hello World
Docker Hello World 引言 Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。本文将带领您从零开始,学习如何使用 Docker 运行一个简单的 "Hello World"…...

UE 5.3 C++ 对垃圾回收的初步认识
一.UObject的创建 UObject 不支持构造参数。 所有的C UObject都会在引擎启动的时候初始化,然后引擎会调用其默认构造器。如果没有默认的构造器,那么 UObject 将不会编译。 有修改父类参数的需求,就使用指定带参构造 // Sets default value…...

ARM内核:嵌入式时代的核心引擎
引言 在当今智能设备无处不在的时代,ARM(Advanced RISC Machines)处理器凭借其高性能、低功耗的特性,成为智能手机、物联网设备、汽车电子等领域的核心引擎。作为精简指令集(RISC)的典范,ARM核…...

需求分析应该从哪些方面来着手做?
需求分析一般可从以下几个方面着手: 业务需求方面 - 与相关方沟通:与业务部门、客户等进行深入交流,通过访谈、问卷调查、会议讨论等方式,明确他们对项目的期望、目标和整体业务需求,了解项目要解决的业务问题及达成的…...

【Unity2D 2022:C#Script】DoTween插件的使用
一、插件介绍 DOTween 是一个快速、高效、完全类型安全的 Unity 面向对象的动画引擎,针对 C# 用户进行了优化,免费和开源,具有大量高级功能 二、插件的下载 1. DoTween官网:DOTween (HOTween v2) 2. DoTween下载: …...

【Docker】ubuntu中 Docker的使用
之前记录了 docker的安装 【环境配置】ubuntu中 Docker的安装; 本篇博客记录Dockerfile的示例,docker 的使用,包括镜像的构建、容器的启动、docker compose的使用等。 当安装好后,可查看docker的基本信息 docker info ## 查…...

【数据结构篇】时间复杂度
一.数据结构前言 1.1 数据结构的概念 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数 据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数据结构, 如:…...

linux 环境安装 dlib 的 gpu 版本
默认使用 pip 安装的 dlib 是不使用 gpu 的 在国内社区用百度查如何安装 gpu 版本的 dlib 感觉信息都不太对,都是说要源码编译还有点复杂 还需要自己安装 cuda 相关的包啥的,看着就头大 于是想到这个因该 conda 自己就支持了吧,然后查了一下…...

springboot集成钉钉,发送钉钉日报
目录 1.说明 2.示例 3.总结 1.说明 学习地图 - 钉钉开放平台 在钉钉开放文档中可以查看有关日志相关的api,主要用到以下几个api: ①获取模板详情 ②获取用户发送日志的概要信息 ③获取日志接收人员列表 ④创建日志 发送日志时需要根据模板规定日志…...
【机器学习】自定义数据集 使用scikit-learn中svm的包实现svm分类
一、支持向量机(support vector machines. ,SVM)概念 1. SVM 绪论 支持向量机(SVM)的核心思想是找到一个最优的超平面,将不同类别的数据点分开。SVM 的关键特点包括: ① 分类与回归: SVM 可以用于分类&a…...

快速提升网站收录:利用网站历史数据
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/38.html 利用网站历史数据可以有效提升网站的收录速度,以下是一些具体的策略和方法: 一、理解网站历史数据的重要性 网站历史数据记录了网站过去的运营情况、用户行…...

【Git】初识Git Git基本操作详解
文章目录 学习目标Ⅰ. 初始 Git💥注意事项 Ⅱ. Git 安装Linux-centos安装Git Ⅲ. Git基本操作一、创建git本地仓库 -- git init二、配置 Git -- git config三、认识工作区、暂存区、版本库① 工作区② 暂存区③ 版本库④ 三者的关系 四、添加、提交更改、查看提交日…...

Python NumPy(11):NumPy 排序、条件筛选函数
1 NumPy 排序、条件筛选函数 NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。 种类速度最坏情况工作空间稳定性…...

AJAX综合案例——图书管理
黑马程序员视频地址: AJAX-Day02-10.案例_图书管理AJAX-Day02-10.案例_图书管理_总结_V1.0是黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖的第25集视频,…...

JDK自带工具解析与生产问题定位指南(一)
1. 引言 Java开发工具包(JDK)内置了强大的诊断工具集,用于监控、分析和调试Java应用程序。这些工具涵盖了从进程管理、内存分析到性能监控的各个方面。本文将介绍一些最常用的Java开发工具,包括jps、jmap、jstat、jcmd、jstack、…...

FPGA 使用 CLOCK_DEDICATED_ROUTE 约束
使用 CLOCK_DEDICATED_ROUTE 约束 CLOCK_DEDICATED_ROUTE 约束通常在从一个时钟区域中的时钟缓存驱动到另一个时钟区域中的 MMCM 或 PLL 时使 用。默认情况下, CLOCK_DEDICATED_ROUTE 约束设置为 TRUE ,并且缓存 /MMCM 或 PLL 对必须布局在相同…...

《解锁AI黑科技:数据分类聚类与可视化》
在当今数字化时代,数据如潮水般涌来,如何从海量数据中提取有价值的信息,成为了众多领域面临的关键挑战。人工智能(AI)技术的崛起,为解决这一难题提供了强大的工具。其中,能够实现数据分类与聚类…...

Java小白入门教程:Object
目录 一、定义 二、作用 三、使用场景 四、语法以及示例 1、创建Object类型的对象 2、使用 toString()方法 3、使用 equals()方法 4、使用 hashCode()方法 5、使用 getClass()方法 6、使用 clone()方法 7、使用 finalize()方法 一、定义 在Java中, object…...

记6(人工神经网络
目录 1、M-P神经元2、感知机3、Delta法则4、前馈型神经网络(Feedforward Neural Networks)5、鸢尾花数据集——单层前馈型神经网络:6、多层神经网络:增加隐含层7、实现异或运算(01、10为1,00、11为0)8、线性…...

stm32硬件实现与w25qxx通信
使用的型号为stm32f103c8t6与w25q64。 STM32CubeMX配置与引脚衔接 根据stm32f103c8t6引脚手册,采用B12-B15四个引脚与W25Q64连接,实现SPI通信。 W25Q64SCK(CLK)PB13MOSI(DI)PB15MISO(DO)PB14CS(…...

编程题-最接近的三数之和
题目: 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 解法一(排序双指针): 题目要求找…...