首页 > 其他分享 >关于数据倾斜的深度探讨?

关于数据倾斜的深度探讨?

时间:2024-06-24 11:02:05浏览次数:23  
标签:倾斜 探讨 任务 user key 深度 数据 节点

温馨提示:

(内容较多,为避免读者逻辑混乱,请严格按照大纲目录逻辑浏览)

一、啥是数据倾斜?

        数据倾斜是指在分布式数据处理系统(如 Hadoop、Spark)中,数据分布不均衡导致某些节点(或任务)处理的数据量远远大于其他节点(或任务)的现象。这会导致负载不均衡,降低整个系统的性能。具体来说,数据倾斜会引发以下问题:

  1. 任务执行时间长:由于部分节点处理的数据量过大,这些节点上的任务执行时间会远长于其他节点,导致整体作业时间延长。
  2. 资源浪费:大部分节点在完成其任务后需要等待少数节点完成任务,造成资源的低效利用。
  3. 内存溢出:处理数据量过大的节点可能会因为内存不足而导致任务失败或崩溃。

二、数据倾斜的表现

a)hadoop中数据倾斜的表现

    (1)有⼀个或多个reduce任务卡住,卡在99.99%, ⼀直不能结束。     (2)各种container报错OOM。     (3)异常的Reducer读写的数据量极⼤,⾄少远远超过其他正常的Reducer。     (4)伴随着数据倾斜,会出现任务被kill 等各种诡异的表现。

b)Hive中的数据倾斜

        ⼀般都发⽣在 Sql中group by 和 Join on 上,⽽且和数据逻辑绑定⽐较深。

c)Spark 中的数据倾斜

        Spark中的数据倾斜,包括Spark Streaming 和SparkSQL,主要表现有以下⼏种: Executor lost, OOM,Shuffle过程出错;Driver OOM;单个Executor 执⾏时间特别久 ,整体任务卡在某个阶段 不能结束;正常运⾏的任务突然失败。

三、数据倾斜产⽣的原因及解决⽅法

a)key值分布不均
        这包括空值以及单⼀key值或⼏个key值过多,这样的情况我们⼀般是打散计算,空值过滤或者将为空 的 key 转变为字符串加随机数或纯随机数,将因空值⽽造成倾斜的数据分不到多个 Reducer。
b)建表时考虑不周
        例⼦:⽐如我公司刚开始是就有两张表,⼀张是user⽤户表,⼀张是log⽇志表,为两个不同部⻔创 建的,两表关联字段为user_id,但user表的user_id 为 int类型,log表⾥的user_id 为string类型, 这时候直接关联的话就会产⽣数据倾斜,那我们可以使⽤cast 函数间int类型的字段转为 string类型。
c)业务数据量激增
        例⼦

标签:倾斜,探讨,任务,user,key,深度,数据,节点
From: https://blog.csdn.net/weixin_49811843/article/details/139918487

相关文章

  • 基于深度学习的图片风格转换系统(论文)
    目录目录基于深度学习的图片风格转换系统1摘要1Abstract21背景介绍及选题意义111.1背景介绍111.2选题意义112相关方法介绍132.1纹理建模132.2图像重建132.3图像风格迁移132.3.1基于在线图像优化的慢速图像风格迁移算法132.3.2基于离线模......
  • Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数
    前言今天来讲一下损失函数——交叉熵函数,什么是损失函数呢?大体就是真实与预测之间的差异,这个交叉熵(CrossEntropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。在信息论中,交叉熵是表示两个概率分布p,q的差异,其中p表示真实分布,q表示预测分布,那么\(......
  • m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
    1.算法仿真效果matlab2022a仿真结果如下:      2.算法涉及理论知识概要      在卫星遥感图像轮船检测中,常用的深度学习模型主要包括卷积神经网络(CNN)、循环神经网络(RNN)、以及两者的混合模型,但最常使用的还是基于CNN的模型,特别是那些在目标检测任务中表现出......
  • 基于深度学习的蔬果识别
    采用ResNet50与ResNet152深度学习模型作为基础架构,通过层叠多个卷积层、池化层和全连接层来实现特征提取和分类任务。并利用蔬果图像数据集进行模型训练,并采用数据增强技术来扩充训练数据并减少过拟合问题。再通过VGG19模型处理结果作为参考。经过实验证明,所提出的基......
  • 深度解析RocketMq源码-高可用存储组件(一) raft协议详解
    1.绪论前面的文章已经分析过,以前rocketmq通过主从复制的思想实现系统的高可用,即在搭建集群的时候会手动的设置一个主节点和从节点,在写入数据的时候,会先写入到主broker,然后再同步到从节点中。但是这样会有一个问题,就是主节点宕机过后,需要手动的修改从节点成为新的主节点。在roc......
  • 油氢合建加氢站建设与设计规范探讨
        加氢站与加油站合建可以有效解决用地审批困难、选址受限、远离终端客户及管理成本高等问题。通过功能设施分区,共用给水和排水、供电、站控及安防系统,可最大限度地降低合建站建设管理成本,节约土地资源,实现加油与加氢合建站的可持续发展。简要分析了油氢合建站的优势......
  • 跨行业数据资产共享与协同:构建一体化数据共享平台,解锁数据资产潜力,促进多行业数据流通
    一、引言随着信息技术的飞速发展,数据已成为推动社会进步和经济发展的关键要素。然而,在传统行业领域,数据往往被限制在各自的“孤岛”中,难以实现跨行业的流通与共享。这不仅限制了数据的价值发挥,也阻碍了行业的创新与发展。因此,构建一体化数据共享平台,实现跨行业数据资产共享与......
  • 海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFl
    一、介绍海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊','珊瑚','螃蟹','海豚','鳗鱼','水母','龙虾','海蛞蝓','章鱼','水獭','企鹅',�......
  • 海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFl
    一、介绍海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物(‘蛤蜊’,‘珊瑚’,‘螃蟹’,‘海豚’,‘鳗鱼’,‘水母’,‘龙虾’,‘海蛞蝓’,‘章鱼’,‘水獭’,‘企鹅’,‘河豚’,‘魔鬼鱼’,‘......
  • 深度分析Kafka与RocketMQ:定义、优缺点、使用场景及选型指南
    在大数据处理和分布式系统中,消息中间件扮演着至关重要的角色。ApacheKafka和ApacheRocketMQ是两种广泛使用的分布式消息系统,本文将深入分析它们的定义、优缺点、使用场景,并提供选型指南和使用注意事项。一、Kafka与RocketMQ的定义Kafka:ApacheKafka是一个分布式流处理......