自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大数据,Linux,服务器,技术、架构,方案

大数据技术,架构,方案,以及Linux、服务器领域性能优化与思考

  • 博客(79)
  • 收藏
  • 关注

原创 简化 KNN 检索【翻译】Simplifying kNN search

转载 #大数据/ES #翻译这篇文章是关于如何简化 k 最近邻(k-Nearest Neighbors,简称 kNN)搜索的深入探讨。以下是对全文的翻译(借助 kimi AI):在这篇博客文章中,我们将深入探讨我们为使 kNN 搜索的入门体验更加轻松所做的努力!

2024-05-10 14:14:50 918

原创 ESrally单机向量检索性能测试全流程

ann-benchamrk 是一个用于评估近似最近邻(ANN)搜索库的性能测试工具,这个本是最佳选择,但是也由于需要 pip 安装几十个依赖和 docker 构建十分麻烦,且详细的教程介绍太少,最后还是选择 esrally 进行性能测试,这个也是 ES 官方博客所使用的。本文包含ESrally的git失败各种疑难杂症、数据离线的准备、测试命令、测试结果的解读等等

2024-05-10 14:00:44 1069

原创 性能问题分析排查思路之机器(5)

CPU相关问题概述在分布式系统中,CPU相关的性能问题通常涉及多个方面,包括CPU的利用率、超分问题、上下文切换等。例如,当多个虚拟机(VM)在同一台物理服务器上运行时,它们可能会争抢CPU资源,导致性能下降。此外,如果某个进程的CPU使用率异常升高,可能是由于该进程存在性能瓶颈或受到了恶意软件的攻击。lscpu是一个用于显示CPU架构和相关信息的Linux命令。它提供了关于CPU的详细信息,包括处理器类型、架构、核心数、线程数、缓存大小等。使用lscpu可以帮助系统管理员了解CPU的硬件配置和性能特性。

2024-05-07 09:06:33 564

原创 性能问题分析排查思路之机器(4)

在分布式系统中,尤其是spark这些分布式内存计算框架中,内存管理是一个关键方面,因为它直接影响到系统的性能、稳定性和扩展性。内存问题可能表现为多种形式,如内存泄漏、内存溢出(OOM, Out of Memory)、内存碎片等。这些问题通常与应用程序、操作系统和硬件之间的交互有关。

2024-05-06 09:33:56 629 1

原创 ES的集群节点发现故障排除指南(3)- end

如果存在一个稳定选举出的主节点,但某个节点无法发现或加入其集群,它将反复使用ClusterFormationFailureHelper记录器记录关于此问题的日志消息。受影响的节点上的Health API也将提供有关此情况的有用信息。受影响的节点和已选举出的主节点上的其他日志消息可能提供有关问题的额外信息。如果日志表明节点由于超时或网络相关问题而无法发现或加入集群,请按以下方式缩小问题范围

2024-03-28 20:53:49 514

原创 使用gradle离线编译ES 8.11

使用Gradle进行Elasticsearch(ES)的离线编译,你需要确保所有必要的依赖项和插件都已经下载并存储在你的本地仓库中。在离线机器上,你可以通过设置Gradle的系统属性或环境变量来确保它使用本地仓库。在可以访问网络的环境中,进入到Elasticsearch源代码的根目录,并执行构建命令。从Elasticsearch的官方GitHub仓库或其他可靠来源克隆或下载源代码,或需要自己改成指定的版本(tag)。一旦依赖项被下载到本地仓库,你需要将这些依赖项复制到你的离线机器上的对应位置。

2024-03-28 14:36:10 735

原创 ES 8.x的多实例集群搭建与角色规划

官方文档给的提示是不做任何更改解压后可直接启动,显然,我们至少需要改个名字。以下全部是我进行的参数组合测试的情况(首次启动):如果继续设置了角色master,端口号以及初始master节点列表,就不会自动开启ssl模式了,但此时多节点无法互联成集群,密码无法更新:ERROR: Failed to determine the health of the cluster. Unexpected http status [503]。上述6个值以外如果还额外指定了。

2024-03-22 08:55:18 1644 1

原创 ES的集群节点发现故障排除指南(2)

在实际应用中,ES集群节点发现的稳定性和性能对于整个集群的稳定性和性能至关重要。当一个节点赢得主节点选举时,它会在日志中记录一条包含 "elected-as-master" 的消息。如果这种情况重复发生,则说明当选为主节点的节点处于不稳定状态。

2024-03-22 08:16:52 604

原创 ES集群不识别节点SSL证书的问题处理

观察上述两个过程,启动前certs目录是没有的,启动后自动生成了证书,并且配置自动修改好,显然这个证书就是本地可用的。所以,绕了一圈SSL证书仅需要在本地生成,踩这个坑主要是由于ES 8.x版本将证书生成进行了自动化(对用户透明了),所以忽略了这一点。这个举措本身是简化用户操作的,因此,建议使用指定token的方式组建集群,不要手动配置证书了。另外,每个ES节点配置中的发现信息()随着加入集群的顺序而改变,后加入的节点会自动添加前面已在集群内的节点信息,但是手动启动的不会自己变更。

2024-03-21 08:41:28 664

原创 shell实现查询进程号并批量kill(脚本)

在shell中,如果你想通过命令行查询出一系列匹配某个关键词的进程,并使用。本地有3个ES的进程,由于是java进程我们直接使用jps查询就可以。这里的关键词是你想要匹配的进程的部分或全部名字,命令可以根据进程名或命令行参数来查找进程。

2024-03-21 08:25:52 750

原创 ES的集群节点发现故障排除指南(1)

ES在没有当选主节点或当选主节点不稳定的情况下,将无法解决任何其他问题。通过在相关节点同时抓取网络数据包,能够发现并诊断系统和网络层面的故障,如重传、丢包及连接延迟等问题。当排查Elasticsearch性能瓶颈时,可利用jstack或Java Flight Recorder获取主线程堆栈转储来识别线程等待过久的情况。节点热线程API虽有助于发现问题,但由于其对集群内各节点线程的依赖性,在某些情况下可能受诊断问题本身的影响而不可靠。

2024-03-20 13:42:53 665

原创 ES 8.x的全程编译实践与问题解决

本文整理和记录ES 8.x的编译过程问题与解决方案,主要解决gradle下载问题以及国内源、Hadoop环境设置与hadoop附件缺失、编译时jdk版本指定、esql的compute超时报错、编译时警告导致编译失败等问题!

2024-03-20 12:52:41 1482 1

原创 ES进程除了kill之外,有什么优雅关闭的方式吗?

在Linux环境中,Elasticsearch(ES)进程可以通过多种方式实现优雅关闭,这种方式允许它完成必要的清理工作,如保存未写入磁盘的数据、关闭索引等,而不是直接强制终止。同时,Elasticsearch在接收到关闭信号后,也会尽量保证正在执行的操作得到妥善处理和回滚,避免数据丢失或损坏。Systemd通常会确保服务按照正确的方式来停止,包括执行服务定义中的“pre-stop”脚本,这对于像Elasticsearch这样的服务来说意味着执行一个有序的关闭。信号后,会按照设计的流程执行优雅关闭。

2024-03-19 16:35:10 1087

原创 Spark 3.5.0 特性速览

Spark 3系列已经发布了第六版3.5.0,目前最新3.5.1。使用最广泛的大数据可扩展计算引擎。数以千计的公司,包括 80% 的财富 500 强企业,都在使用 Apache Spark。来自业界和学术界的 2000 多名开源项目贡献者。Apache Spark 3.5.0 是 3.x 系列中的第六个版本,该版本在开源社区的大力贡献下解决了超过 1,300 个 Jira 问题。

2024-03-19 10:28:15 1283 1

原创 使用ES检索PDF等文档的全栈方案之前端demo(end)

通过之前的系列文章,整个ES搜索文件的流程与大的问题已经统统扫除了,既然是全栈流程,是不能缺少前端查询页面的,前端需简单实现一个用户输入查询关键词句,发起搜索,页面以表格形式展示查询的结果,额外可以提供文件的预览或下载操作。1. 实现ES检索pdf等文件内容的插件2. 基于GitBucket的Hook构建ES检索PDF等文档全栈方案3. Java实现读取转码写入ES4. ES文件搜索的细节优化与实现5. ES解析word内容为空的问题和直接使用Tika解析文档的方案。

2024-03-19 08:54:11 1126 1

原创 查询ES之细化需求实现多字段、范围过滤、加权和高亮

它用于在字段之间分配更多的“重要性”,但实际的得分还会受到文档内容、字段分析和查询类型等多种因素的影响。只需略微修改一下,就可以提高title字段的权重,根据生产实际,我们认为标题的重要性显然是高于正文内容的,因此权重相对提高5倍。类型会返回匹配最佳字段的文档,并考虑字段的权重。字段,其中包含了被高亮的文本片段。这个返回结果需要前端逻辑处理和渲染才能展示高亮的效果。字段的匹配将对最终得分产生更大的影响。上述查询中的高亮逻辑主要是其中的。字段的权重被设置为5,这意味着。值,因此它将使用默认权重1。

2024-03-15 15:40:45 668

原创 ES解析word内容为空的问题和直接使用Tika解析文档的方案

在上一篇文章最后,我们虽然跑通了ES文件搜索的全部流程,但是仍然出现了1个大的问题:ES7.3实测无法索引docx和doc文档,content有值但是无法解析到附件成为可读的可搜索的内容,附件内容为空(附件中根本没有content这个字段,并非内容为空)。实际上,我加测了xlsx的表格文件,也是无法解析内容的,一部分word文件被解析为zip压缩文件,还有一部分被解析为xml文件格式,说明即便都是docx类型文件,ES的管道附件的识别也不一样,这与用户的直观感受不相符!至此,这个问题陷入了泥潭!

2024-03-15 08:38:00 1309 2

原创 Java怎么实现word转PDF?

这其实源自于使用ES搜索word、pdf等文档的方案实现过程,出现了只能正确解析pdf却不能解析word内容的错误,于是折中方案何不直接把word转成pdf呢?word转pdf肯定是比pdf转word容易太多了。

2024-03-11 20:43:11 1219

原创 讨论:大数据上云的利与弊

其次,大数据上云可以降低成本。此外,云平台通常提供丰富的工具和服务,如数据分析、机器学习等,可以加速大数据项目的开发和部署。如果组织需要更高的灵活性和可扩展性,或者希望降低成本并加速项目开发,那么大数据上云是一个不错的选择。同时,K8s作为一种开源的容器编排系统,可以帮助组织更好地管理和调度大数据应用,提高系统的稳定性和可靠性。总之,大数据上云及采用K8s化部署是符合现代企业对敏捷性、成本控制和技术创新追求的有效途径,但决策前应充分评估其对企业具体情况的适用性,同时要积极应对相关的安全挑战和依赖风险。

2024-03-10 18:13:43 449

原创 大数据工程师的日常工作内容是干嘛?

随着数字化时代的来临,大数据已经成为了许多领域不可或缺的重要资源。而大数据工程师掌握着处理、分析和应用大数据的核心技能。那么,大数据工程师的日常工作内容到底是什么呢?一种是数据需求的开发与治理,另一种则是平台与基础系统研发建设。业务侧的日常工作内容广泛而多样(但由于平台的建设,很多业务就是写SQL数据采集与集成设计并实施数据采集方案,包括从各种源头(如传感器网络、日志文件、交易记录等)收集数据,可能使用Flume、Kafka等工具实时或批量摄取数据。

2024-03-10 14:34:43 1050

原创 ES分页查询的最佳实践:三种方案

Elasticsearch(ES)中进行分页查询时,最佳实践取决于具体的使用场景和需求。对于网页应用中的普通分页浏览,尤其是前几页,from+size足够。如果需要处理大数据集且允许一定的延迟,或者一次性获取所有结果,Scroll API 是更好的选择。对于深度分页且需要实时性较好的场景,应优先考虑search_after。

2024-03-10 14:11:38 976

原创 基于git推送的ES检索pdf内容优化思路与代码实现

在之前的内容中我们已经介绍了创建gitbucket的webHook,使得仓库有更新时自动推送到我们定义的接口;然后Java读取仓库的文件转码写入ES库,这些核心流程已经实现。1. 实现ES检索pdf等文件内容的插件2. 基于GitBucket的Hook构建ES检索PDF等文档全栈方案3. Java实现读取转码写入ES在在我们的现有系统中,我们已经实现了自动化识别并记录文件类型的能力,无论是纯文本、PDF还是其他格式,都将作为一个ES属性加以记录,这对于后续根据不同文件类型实施针对性处理至关重要。

2024-03-09 14:02:01 557

原创 Java实现自动提取文件名、标签以及作者等信息(代码)

而对于一般的文件系统来说,并不会有“标签”和“作者”的概念,除非是在文件系统外的其他系统或数据库中关联了这些额外信息。对于常见的文件类型,如PDF、Word文档、图片等,你可能需要使用专门的库来解析这些文件并提取所需的信息。对于更复杂的文件或元数据需求,你需要深入研究相关库的功能和文档。对于PDF文件,你可以使用Apache PDFBox库来提取元数据,如作者和标题(可以看作是标签)。要使用 Tika 来确定文件的类型,你首先需要将其添加到你的项目中。如果你使用 Maven,你可以在你的。

2024-03-09 11:51:00 600 4

原创 【Linux通识】之端口到底是个什么?

想象一台计算机是一栋有很多房间的大楼,大楼有不同的门,每个门都有一个独特的门牌号。网络端口就像这些门牌号,每个门对应着大楼内的一个特定房间(即一个应用程序或服务)

2024-03-09 09:19:54 1136 1

原创 程序员有哪些证书值得考?

也有观点认为,实战经验和项目成果在IT行业中往往比证书更为重要,很多企业在招聘时更加重视候选人的实际操作能力和解决问题的经验。此外,高昂的考试费用和备考成本也使得并非所有程序员都倾向于选择考证。但是,中国有句老话叫“技多不压身”,证也是!

2024-03-08 21:28:48 687

原创 Java实现单个参数读取多级JSON信息(代码)

Java方法实现以格式做传入参数读取json深层次的信息,而不用一级一级地去遍历Json对象。

2024-03-08 13:48:50 207

原创 大数据组件之Flink:实时流处理的王者

Apache Flink是一个用于无界和有界数据流的开源流处理框架。它提供了一个统一的API来处理批量和流数据,使得开发者可以轻松地构建高效的实时数据处理应用。Flink的核心优势在于其低延迟、高吞吐量和容错性强的特点,适用于多种实时数据分析场景。Apache Flink作为一款革新的大数据处理引擎,凭借其对流处理与批处理的统一视图、卓越的实时性和容错性、以及对事件时间处理的深入支持,已在业界树立起标杆。无论是应对瞬息万变的实时数据洪流,还是处理大规模的历史数据集,Flink均展现出强大而稳健的性能。

2024-03-08 10:45:00 1102

原创 大数据与云计算的关系

数据和云计算的关系可以用一句话精炼概括:“云计算提供了舞台,大数据在舞台上绽放光彩”。没有云计算的基础架构,大数据的处理将面临极大挑战;而没有大数据的应用需求,云计算的潜力也无法得到充分挖掘。两者共同促进了人工智能、物联网、5G通信等前沿技术的发展,为各行各业的数字化转型奠定了坚实基础。

2024-03-08 09:00:00 409

原创 使用ES查询时只返回指定字段的三种方法

你可以指定一个包含字段名的数组来只包含这些字段,或者指定一个排除字段名的数组来排除这些字段。在Elasticsearch(ES)中,当你执行查询时,通常希望只返回特定的字段,而不是整个文档的所有字段。最近在使用ES检索pdf、word等文件内容时查询发现返回的结果过于冗长,不好阅读,因为文件的内容占据的篇幅太大了,因而要设置返回字段。请注意,根据你的具体需求和使用的Elasticsearch版本或客户端库,上述方法可能会有所不同。查询是一个简单的查询,它会匹配索引中的所有文档。字段来指定需要返回的字段。

2024-03-08 08:58:24 1353

原创 从数据到智能:探讨大数据在AI领域的核心作用

大数据与人工智能的关系可以深刻地概括为相辅相成、互促共生的战略伙伴关系。大数据为人工智能提供了源源不断的“养料”,犹如矿石之于冶炼,土壤之于耕种。海量的数据不仅是人工智能技术发展的基石,而且是其不断迭代和优化的核心驱动力。人工智能尤其是机器学习和深度学习等领域,依赖于大数据集进行模型训练、模式识别、趋势分析和预测建模,从而模拟人类智慧,实现对未知数据的精准推断和决策。另一方面,人工智能反过来又强化了大数据的价值发掘能力。

2024-03-08 07:45:00 517

原创 TPC-H测试基准及其SQL场景理解与特点

TPC-H是( Transaction ProcessingPerformance Council )制定的基准程序之一,它由一套面向业务的临时查询和并发数据修改组成。TPC- H 基准模拟了决策支持系统中的数据库操作,测试数据库系统,以每小时执行的查询数()作为度量指标。TPC-H是根据真实的生产运行环境来建模,模拟了一套销售系统的数据仓库。其共包含8个基本关系,数据量可设定从1G~10T不等。其基准测试共包含了22个查询,主要评价指标各个查询的响应时间,即从提交查询到结果返回所需时间。

2024-03-07 14:31:58 1030

原创 大数据组件之图数据库JanusGraph图文介绍

JanusGraph是一个开源的分布式图数据库。2017年,JanusGraph发布0.1.0 版本,目前(截止2024-03)最新版本为1.0.0。JanusGraph是基于Apache基金会下的一个开源的图数据库与图计算框架Tinkerpop来开发的。采用的图数据模型是“属性图模型”,即图数据包含顶点和边;顶点可以有属性和标签;边有标签和方向,并总是有一个开始节点和结束节点。每个JanusGraph图都有一个Schema,该Schema由其中使用的边标签,属性键和顶点标签组成。边标签。

2024-03-07 13:47:51 1127

原创 大数据组件之Hadoop图文介绍

这个生态最早被称作动物园:Hadoop生态之所以被称为“动物园”,是因为在其发展早期,围绕Hadoop形成了一个包含众多以动物名称命名的项目和组件的生态系统。这些项目通常都有各自的动物图标,比如Hadoop本身(大象)、Hive(蜂巢)、Pig(猪)、HBase(海狸)、ZooKeeper(动物园管理员)、Flume(鹈鹕)、Chukwa(鹤)、Avro(鸟)、Kafka(猿猴)、Mahout(大象训练师,后来不再沿用动物名但最初也是)等等。

2024-03-07 13:16:08 1116

原创 Elasticsearch的读写性能优化与负面清单

写入时指定DOC ID,意味着首先需要判断ID是否重复,如果在大数据量的场景下,可能会需要从磁盘进行一次读操作,从而占用大量的磁盘IO,导致写入速度慢。随着数据量的增加,索引和搜索所需的时间也会增加,上线初期可能无法感知,随着数据量的逐渐增大到一定程度,性能可能会急剧地下降。如果你的集群处于不稳定的状态,比如有大量的分片在做均衡迁移或者恢复,都会占用大量的资源,导致写入资源被占用。高并发的查询或者大数据的查询可能会占用大量的资源,此时需要衡量你的系统侧重点了,实在不行,扩容吧。

2024-03-07 08:32:37 1032

原创 Java实现读取转码写入ES构建检索PDF等文档全栈流程

需要优化的是索引文件的属性尚不完整,文件的版本如何区分,以免重复录入文件,文件删除时是否从ES索引中删除等等这些流程。根据自己的需要,文件属性应至少包括文件名、文件类型、作者等字段,由于目标是可以通过浏览器页面直接打开文件,则需要包含文件的网络url(注意不是本地url地址)。这段代码是关于Elasticsearch的操作,具体是将一个文件转换为Base64格式,然后将其内容索引到Elasticsearch的指定索引中。至此,后端ES索引流程基本完成了。

2024-03-06 15:52:27 1122 4

原创 降低85%的gc发生率:ES的GC调优实践!

经过调优对比,我统计了调优前后各1天的日志内容,统计发现,gc发生率显著下降了85%,且结合索引的拆分操作,最终延迟下降了20倍,分享参数如下

2024-03-06 12:56:19 541

原创 数据库的分类和特点介绍

分类关系型数据库、非关系型数据库、键值、文档、列族、图数据库等。在大数据领域中,上述非关系型数据库的类别尤其重要,它们通常被设计用来处理极高并发、极大数据量的场景,并且能够满足低延迟查询、横向扩展的需求。

2024-03-06 12:41:51 1114

原创 我为什么选择大数据和技术人生两三事

程序员这个职业赛道的确如同一座充满未知与奇遇的迷宫,无论你是钟情于前端的绚烂之美,醉心于后端的深沉之力,还是倾慕于数据科学的神秘魅力,都需要我们怀揣热情与勇气。万里归来颜愈少,微笑,笑时犹带岭梅香。试问岭南应不好,却道:此心安处是吾乡。—— 苏轼。

2024-03-06 08:39:50 959

原创 基于GitBucket的Hook构建ES检索PDF等文档全栈方案

之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo,预期建设方案是使用触发器类型从公共的文档源拉取最新的文件,然后调用Java将文件转Base64后入ES建索引,再提供封装接口给前端做查询之用。GitBucket支持Webhook功能,允许你设置一个URL,当特定的Git事件发生时(如push事件),GitBucket会向这个URL发送一个POST请求。由于全部内容过长,为了便于阅读,按照大的章节分为三部分,第一部分讲述基于WebHook的触发机制怎么搭建,包含全部实现细节!

2024-03-05 20:33:49 895 1

原创 为什么spark-sql比hive执行速度快,但数据量大时spark-sql稳定性差?

相比之下,Hive后来引入Tez引擎后,对内存的依赖度明显增强,随之而来的是内存异常以及系统稳定性的潜在挑战,这一点与Spark存在的稳定性问题颇为相似。然而,Tez在运行过程中对资源的需求相对更高,特别是内存方面。众所周知,磁盘往往就是性能的杀手,这也是数据库及SQL领域历经多年优化的核心目标——减少不必要的I/O操作。综上所述,无论是Spark还是Hive,在追求高性能与高稳定性之间的权衡取舍,正是大数据技术二十年发展历程的真实写照,犹如“鱼与熊掌不可兼得”的古老智慧,在当今时代背景下得到了生动体现。

2024-03-05 14:47:17 302

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除