一、数据倾斜危害?

单个或少数的节点数据量特别大,但一个 Stage 所耗费的时间,是由最慢的那个 Task 决定,所以数据倾斜会导致两个后果:

  1. OOM(单或少数的节点);
  2. 拖慢整个Job执行时间(其他已经完成的节点都在等这个还在做的节点)。

二、数据倾斜的现象

当发现如下现象时,十有八九是发生数据倾斜了:

  • 绝大多数 task 执行得都非常快,但个别 task 执行极慢,整体任务卡在某个阶段不能结束。

  • 原本能够正常执行的 Spark 作业,某天突然报出 OOM(内存溢出)异常。

三、导致Spark数据倾斜的本质

在进行 shuffle 的时候,必须将各个节点上相同的 key 拉取到某个节点上的一个 task 来进行处理,比如按照 key 进行聚合或 join 等操作。此时如果某个 key 对应的数据量特别大的话,就会发生数据倾斜。比如大部分 key 对应10条数据,但是个别 key 却对应了100万条数据,那么大部分 task 可能就只会分配到10条数据,然后1秒钟就运行完了;但是个别 task 可能分配到了100万数据,要运行一两个小时。

四、定位最慢的Task所处的源码位置

步骤一:看数据倾斜发生在哪个stage。yarn-client模式下查看本地log或Spark Web UI中当前运行的是哪个stage;yarn-cluster模式下,通过Spark Web UI查看运行到了哪个Stage。

主要看最慢的Stage各task分配的数据量,来确定是否是数据倾斜。

步骤二:根据Stage划分,推算倾斜发生的代码(必然有Shuffle类算子)。

根据stage划分原理,推算出来发生倾斜的那个stage对应代码中的哪一部分,这部分代码中肯定会有一个shuffle类算子。简单实用方法:只要看到shuffle类算子或Spark SQL的SQL语句会有Shuffle类的算子的句子,就可以知道该地方划分为前后两个Stage。(用Python的PySpark接口,Spark Web UI会查看task在源码中的行数。)

五、解决方案

pysaprk数据倾斜怎么解决?相关推荐

  1. hive数据倾斜的解决办法

    数据倾斜是进行大数据计算时常见的问题.主要分为map端倾斜和reduce端倾斜,map端倾斜主要是因为输入文件大小不均匀导致,reduce端主要是partition不均匀导致. 在hive中遇到数据倾 ...

  2. 机器学习数据倾斜的解决方法_机器学习并不总是解决数据问题的方法

    机器学习数据倾斜的解决方法 总览 (Overview) I was given a large dataset of files, what some would like to call big d ...

  3. 如何解决mysql数据倾斜_什么是数据倾斜?如何解决数据倾斜?

    原标题:什么是数据倾斜?如何解决数据倾斜? 导读 相信很多接触MapReduce的朋友对'数据倾斜'这四个字并不陌生,那么究竟什么是数据倾斜?又该怎样解决这种该死的情况呢? 何为数据倾斜? 在弄清什么 ...

  4. 35-Spark Streaming反压机制、Spark的数据倾斜的解决和Kylin的简单介绍

    19.6 数据的反压机制⭐️ 反压机制的理解 数据流入的速度远高于数据处理的速度,对流处理系统构成巨大的负载压力,如果不能正确处理,可能导致集群资源耗尽,最终集群崩溃, 因此有效的反压机制(backp ...

  5. MapReduce 数据倾斜以及解决思路

    MapReduce 数据倾斜以及解决思路 1.小背景 在mapreduce的分布式解决框架中,数据处理主要分为2个步骤,map阶段和reduce阶段 map阶段主要是数据转换,也就是按照预期把输入的数 ...

  6. hive解决数据倾斜问题_Hive数据倾斜和解决办法

    转自:https://blog.csdn.net/xinzhi8/article/details/71455883 操作: 关键词 情形 后果 Join 其中一个表较小,但是key集中 分发到某一个或 ...

  7. select怎么设置默认值_20200817:详细说下数据倾斜怎么解决?

    福哥答案2020-08-17: 数据倾斜是大数据领域绕不开的拦路虎,当你所需处理的数据量到达了上亿甚至是千亿条的时候,数据倾斜将是横在你面前一道巨大的坎.很可能有几周甚至几月都要头疼于数据倾斜导致的各 ...

  8. 【HIVE数据倾斜常见解决办法】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.什么是HIVE数据倾斜? 二.数据倾斜原因及解决办法 1. Join 倾斜 a. 大表 Join 小表 b. 大表 ...

  9. 数据倾斜及其解决方式

      数据倾斜是大数据领域绕不开的拦路虎,当你所需处理的数据量到达了上亿甚至是千亿条的时候,数据倾斜将是横在你面前一道巨大的坎.很可能有几周甚至几月都要头疼于数据倾斜导致的各类诡异的问题.   数据倾斜 ...

最新文章

  1. 云从科技3D人体重建技术刷新3项纪录!仅凭照片即可生成精细模型
  2. 关于大搜车「无线开发中心」团队
  3. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架
  4. mysql_connect() 不支持 请检查 mysql 模块是否正确加载
  5. JAVA语言概述和基本语法知识点
  6. [游泳] Sun Yang 1500 Swimming Stroke Analysis London 2012
  7. WebFlux02 SpringBoot WebFlux项目骨架搭建
  8. tomcatSupplement(1)tomcat启动脚本分析(以Windows平台为例)
  9. gridview行号
  10. python canny函数_python库skimage 应用canny边缘探测算法
  11. Java基础学习总结(49)——Excel导入导出工具类
  12. 安全双标准或成拖垮企网防护的新威胁
  13. 礼县职业中等专业学校计算机,礼县职业中等专业学校
  14. 阿里云云计算 20 在线实验--块存储的使用
  15. 一大推DISCUZ系列插件模板来了,需要的免费抢!!!
  16. 长青藤cad_长青网
  17. psn注册什么服务器,怎么注册PSN港服账号?PSN港服官网注册教程
  18. eclipse上配置JavaFX完整教程
  19. java宠物小精灵_4978:宠物小精灵之收服
  20. 轨迹(形状)相似性判断与度量方法

热门文章

  1. PCRF 关于地址对齐,大小端
  2. Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration
  3. linux内核全局变量重定位,动态链接库中全局变量的重定位问题
  4. 使用VS+VisualGDB编译Linux版本RCF
  5. php生成统计图类pchart---中文翻译手册
  6. Matlab中产生门函数----Heaviside函数的调用方法
  7. opencv颜色识别学习总结
  8. layui教程(一) form 表单的提交问题
  9. 不懂精简指令集还敢说自己是程序员?
  10. HOOK技术四-插件中Activity启动实战