大数据做「AI大模型」数据清洗调优基础篇

关于本文

近期一直在协助做AI大模型数据清洗调优的工作,主要就是使用大数据计算引擎Spark做一些原始数据的清洗工作,整体数据量大约6PB-8PB之间,那么对于整个大数据量的处理性能将是一个重大的挑战,关于具体的调优参数配置项暂时不在本文内容之中,因为调优还在进行时,等事情结束之后,再将相关参数以及说明发布出来。

通常来说,基础大数据集群部署之后不需要做一些调优之类的事情,可以应对几十GB或者几百GB的数据处理诉求(还要结合计算资源多少),但是当数据量和计算任务量级上了一个梯队之后(TB级别),调优有几个基本核心点需要掌握,在更多数据量、更多节点数、更多作业量级的时候,那么就要关注一些组件配置项的默认值是否合理了,一般的默认配置都是保证基本可用的,具体要改哪些配置,修改到多大的阈值要结合很多因素来考虑,本文就根据笔者的一些实战经验来概述三点(仅供参考!)

  • 整体来说,应该关注哪些因素

  • 存储量上升,需要关注哪些指标来应对读写瓶颈

  • 计算并发应该怎么设定合理?遇到瓶颈怎么办?

一:整体来说,应该关注哪些因素?

对于一个大数据集群来说,无非是包含两种类的服务,一种是计算服务(MR、Spark、Flink)、一种是存储服务(HDFS、对象存储),这些服务所运行的介质都是在某些硬件资源之上的,所以,在执行大作业、大数据量的准备工作之前我们要先评估硬件设备是否合理。

从本次调优来说,服务器单台的配置是128C2TB16TB*10 节点数在100台的规模(后续还在扩容),从机器配置来看,基本上已经满配了,但是并不是配置高了就足够了,我们还要关注CPU的调优、内存分配、硬盘盘位和硬盘类型、网络带宽大小(出入带宽流量)等等,硬件配置决定了整体软件处理性能的上限,即便软件写的很厉害,但是硬件配置跟不上的话那其实就等同于巧妇难为无米之炊。

  1. 从CPU层面需要关注那些指标:CPU是整个计算系统的核心,我们所启动的计算作业都是通过CPU的核心来进行计算的,一般大数据作业我们要关心CPU的型号、核心数,更多的核心意味着可以同时处理更多任务,尤其在大数据多线程应用中作用更大一些。其次就是主频,主频表示CPU每秒钟所能执行的基本运算次数,更高的主频通常意味着单线程任务处理速度更快。

  2. 从硬盘层面需要关注那些指标:磁盘选型是作为整个存储吞吐的核心要素之一,同时,硬盘的选型也决定了计算性能的瓶颈,当硬盘吞吐小于计算所产出的数据时,那么硬盘将为作为一个瓶颈问题, 关于硬盘首先是SSD、HDD、云盘这些来选择,你可以使用一些硬盘类的压测工具来测试每块盘的吞吐量和IOPS,比如 dd 、 CrystalDiskMark 等等。

  3. 从网卡流量方面需要关注那些:网卡是整个分布式系统做数据交换必须经过的介质,现在基本都是万兆网卡,整个流量吞吐能到几十Gb/s,在集群部署之前可以选择使用iperf3进行压测,看看整个网卡带宽的阈值是多大。在大数据量的计算过程中各个节点之间的数据传输都要经过网卡来传输,所以,如果网卡的吞吐值很小的话,就会影响整个作业的运行速度。当数据长期积压之后,那么极大可能这个container就会被failed了。

二:存储量上升,需要关注哪些指标来应对读写瓶颈?

当进行数据持续大量导入的时候,那么这里我们就要面临几个问题?除了上面几个硬件瓶颈的问题解决之外,还要查看关于底层存储系统(比如:HDFS、对象存储),对于分布式存储来说,底层都是通过RPC协议来通信的,那么这里就要判断服务本身对于RPC处理线程的大小,一般默认值都是500-1000之间,这个值就会限制大规模集群的数据同步效率。

其次,对于像HDFS这种分布式文件系统来说,为了控制数据同步的速率,可以通过DN的bandwith来控制台数据复制的带宽大小,如果服务本身的这种带宽限制比较小的话呢,也会影响数据同步的效率,所以一般而言,要根据整个集群的规模大小,所处的场景是单纯存储还是单纯计算还是存储和计算都有,如果是单存储场景的话,那么这个值就建议调大一些,可以放到Gb级别(注意:HDFS里面的带宽单位是大B,一个Byte等于8个bit,通常网卡传输是bit来传输的)

在数据量快速上升的时候,即便我们的磁盘空间足够大,也要做好空闲资源的预留,避免有热点问题的时候造成某些节点一直被写入,一直到磁盘写满影响服务的稳定性,那么这时候我们要提前设置好存储系统在写入本地磁盘的时候的预留值,我们至少要预留10%-20%的buffer,或者150G-300G的空间。

最后,就是存储选型是选择本地存储还是云端存储,这两个根本区别就是成本高低和对性能的追求,毋庸置疑,本地存储的性能是高于云端对象存储的,但是成本方面也是远远大于对象存储成本的,所以,对于这块的选型我们需要根据实际情况来判断,是空间换时间,还是成本换性能,或者说二者结合的方式也可以是一个方案,最终的数据存储还是建议留存在对象存储中的,毕竟长期来看成本更低。

三:计算并发应该怎么设定合理?遇到瓶颈怎么办?

关于计算资源这块其实涉及到的因素很多,比如硬件资源的CPU核心数,并发计算的任务多指定的虚拟核心数不能超过物理CPU核心数太多,否则会影响整个计算任务频繁的上下文切换,以及其它计算任务获取不到线程,比如内存的容量,每个并发执行的Task都需要一定的内存资源,来进行数据的加载和处理,我们需要合理的每个Map的内存大小,设置太小容易OOM,设置太大的话则资源浪费,也会触发系统级的内存交换(SWAP)影响性能,比如网络带宽和磁盘IO,如果任务需要频繁的数据同步,那么网络和磁盘的IO会比较高,这时候需要判断是否要进行数据局部加载或者分区/分块计算。

除了上面提到的硬件资源的合理配比之外,对于计算引擎本身的调优也是需要着重考虑,当然不同的计算引擎的调优参数项都不太相同,这里就提及一些能够代表一些共性的点出来吧!

  1. 根据所要计算的文件数量大小,来合理分配并发数,最好是文件数是并发数的整数倍,比如50个文件可以设定50并发或者25并发,避免设定太小影响任务执行时长,设置太大的并发度导致过多的上下文切换和通信开销。

  2. 要监控整个集群的核心指标,来判断那块会是瓶颈,如果发现某个资源使用率持续达到100%,例如CPU一直满载或内存频繁溢出,则可能是资源瓶颈。此时应考虑优化作业代码、提高硬件资源配置或调整资源分配策略。

  3. 如果并行计算任务之间存在大量等待和阻塞,可能是由于并行度设置不合理、任务间依赖关系复杂、锁竞争激烈等原因造成的,需要重新设计任务划分和执行策略。

四:结尾

综上而言,简单的概述了一下关于调优方面的基本面,当作近期调优工作的一个简单记录,后面针对每个组件的调优项以及硬件资源的配比可以单独输出一篇,毕竟目前还在进行时,针对不同的作业不同的数据及规模不同的计算引擎类别都需要针对性的进行调整。

但是,总体而言,掌握基本面之后,在上面进行具象的分析调整,基本上能够找到核心问题点以及对应的解决措施。

最后,就是关于工具的时候,在一些服务运行过程中,可能会有很多难以解释的现象,比如死锁问题、链接池问题、CPU过高问题、内存溢出问题等等,我们需要解决一些工具来排查服务里面具体是哪个类和那个函数出现了问题,一般Java常用的就是jstat、jprofiler,golang常用的就是pprof等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2906358.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

13-API风格(下):RPCAPI介绍

RPC在Go项目开发中用得也非常多,需要我们认真掌握。 RPC介绍 根据维基百科的定义,RPC(Remote Procedure Call),即远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机…

1.5-数组-059. 螺旋矩阵 II★★

59. 螺旋矩阵II ★★ 力扣题目链接&#xff0c;给你一个正整数 n &#xff0c;生成一个包含 1 到 n 2 n^2 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。1 < n < 20 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,…

mp4转rmvb怎么转?超快的方法分享!

RMVB&#xff08;RealMediaVariableBitrate&#xff09;是由RealNetworks公司推出的一种视频文件格式。相较于其他视频格式&#xff0c;RMVB以其高度压缩和可变比特率的特性而著称。它常被用于网络视频传输&#xff0c;适用于带宽有限或网络环境较差的情况。 RMVB文件格式的特性…

arp 协议

数据链路层 我们之前学习到的 IP 协议解决的是数据跨网络传输的问题。 数据链路层解决的是&#xff1a;直接相连的主机&#xff0c;进行数据交付的问题&#xff01; 直接相连的设备包括我们的电脑&#xff0c;路由器等等哈&#xff01; 我们在网络基础那篇文章中讲过什么是以…

音频怎么转换成二维码?1分钟在线生成音频二维码

音频是现在很常见一种内容展现方式&#xff0c;很多人会通过音频文件来做推广传播&#xff0c;在很多的应用场景中&#xff0c;音频用来为用户提供内容&#xff0c;从而提升用户体验效果。 为了方便用户能够快速的获取音频文件&#xff0c;通过将音频生成二维码之后&#xff0…

基于单片机的便携式瓦斯检测仪系统设计

**单片机设计介绍&#xff0c;基于单片机的便携式瓦斯检测仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的便携式瓦斯检测仪系统设计是一个针对煤矿等工业环境中瓦斯气体浓度检测的重要项目。以下是该设计…

【单调栈】力扣84.柱状图中最大的矩形

上篇文章我们介绍了使用 无重复值 单调栈代码解决 含有重复值 的问题&#xff0c;在文章的最后&#xff0c;留下了一道考察相同思想的题目&#xff0c;今天我们来看看如何套路解决该题。 &#xff08;还没看过前几篇介绍的小伙伴赶快关注&#xff0c;在 「单调栈」 集合里查看…

启信宝商业大数据助力全国经济普查

近日&#xff0c;合合信息旗下启信宝收到中国青年创业就业基金会感谢信&#xff0c;对启信宝协同助力全国经济普查和服务青年创业就业研究表达感谢。 第五次全国经济普查是新时代新征程上一次重大国情国力调查&#xff0c;是对国民经济“全面体检”和“集中盘点”&#xff0c;…

2024年最受欢迎的视频号小店,怎么做才能月入过万?两步教会你

大家好&#xff0c;我是电商花花。 要说现在最火的项目&#xff0c;我觉得是视频号小店&#xff0c;现在视频号小店经过两年时间的沉淀&#xff0c;让更多人看到了视频号强大私域转化和高利润空间。 抖音小店我们应该也都知道&#xff0c;现在现在的抖音小店利润是不是变小了…

ESCTF-密码赛题WP

*小学生的爱情* Base64解码获得flag *中学生的爱情* 社会主义核心价值观在线解码得到flag http://www.atoolbox.net/Tool.php?Id850 *高中生的爱情* U2FsdG开头为rabbit密码,又提示你密钥为love。本地toolfx密码工具箱解密。不知道为什么在线解密不行。 *大学生的爱情* …

lua脚本在redis集群中哈希槽分片问题

上文说到&#xff0c;通过用redis lua脚本实现时间窗分布式限流 可以操作redis lua脚本来实现时间窗限流&#xff0c;在执行lua脚本的时候&#xff0c;参数中有个keys列表&#xff0c;当lua脚本中如果有操作多个key的情况&#xff0c;就可以传个key列表了。通常情况下&#xff…

java 抠取红色印章(透明背景)

一个亲戚让我帮他把照片里的红色印章抠出来&#xff0c;&#xff0c;&#xff0c;记录下处理过程&#xff0c;代码如下&#xff0c;可直接用&#xff1a; public static void signatureProcess(String sourceImagePath, String targetImagePath) {Graphics2D graphics2D null…

Nginx_简介 + Linux系统下详细安装教程指路

安装教程指路 可参看该视频【尚硅谷Nginx教程&#xff08;亿级流量nginx架构设计&#xff09;】 https://www.bilibili.com/video/BV1yS4y1N76R/?p2&share_sourcecopy_web&vd_source4c2f33f3ba1a0dd45bfdf574befd0069 的p2-p7。从安装centos虚拟机到在虚拟机上安装ng…

JVM(一)——内存结构

一. 前言 1、什么是 JVM? 1&#xff09;定义&#xff1a; Java Virtual Machine - java 程序的运行环境&#xff08;java 二进制字节码的运行环境&#xff09; 2&#xff09;好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收功能数组下标越…

C++从入门到精通——函数重载

函数重载 前言一、函数重载概念二、函数重载的分类参数类型不同的函数重载参数个数不同的函数重载参数类型顺序不同的函数重载 三、函数重载的具体代码展示main.cpp 四、为什么为什么C支持函数重载&#xff0c;而C语言不支持函数重载呢 前言 函数重载是指在同一个作用域内&…

.NET CORE 分布式事务(三) DTM实现Saga及高并发下的解决方案

目录(结尾附加项目代码资源地址) 引言&#xff1a; 1. SAGA事务模式 2. 拆分为子事务 3. 失败回滚 4. 如何做补偿 4.1 失败的分支是否需要补偿 5. 异常 6. 异常与子事务屏障 6.1 NPC的挑战 6.2 现有方案的问题 6.3 子事务屏障 6.4 原理 7. 更多高级场景 7.1 部分…

30-3 越权漏洞 - 水平越权(横向越权)

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、定义 攻击者可以访问和操作与其拥有同级权限的用户资源。 示例: 学生A在教务系统上正常只能修改自己的作业内容,但由于不合理的权限校验规则等原因,学生A可以修改学生B的内…

element-ui autocomplete 组件源码分享

紧接着 input 组件的源码&#xff0c;分享带输入建议的 autocomplete 组件&#xff0c;在 element-ui 官方文档上&#xff0c;没有这个组件的 api 目录&#xff0c;它的 api 是和 input 组件的 api 在一起的&#xff0c;看完源码之后发现&#xff0c;源码当中 autocomplete 组件…

Linux部分命令

目录 1.文件介绍 2.ls命令 3.目录命令 4.相对路径以及绝对路径 5.命令创建目录&#xff08;文件夹&#xff09; 6.which命令 7.find命令 8.grep命令 9.wc命令 10.echo、tail、重定向符 1.文件介绍 和window不同&#xff0c;Linux没有盘路径&#xff0c;所有的文件都存…

Linux部署Kafka2.8.1

安装Jdk 首先确保你的机器上安装了Jdk&#xff0c;Kafka需要Java运行环境&#xff0c;低版本的Kafka还需要Zookeeper&#xff0c;我此次要安装的Kafka版本为2.8.1&#xff0c;已经内置了一个Zookeeper环境&#xff0c;所以我们可以不部署Zookeeper直接使用。 1、解压Jdk包 t…