Spark调优特殊case- Task倾斜

在这里插入图片描述
在这里插入图片描述
首先我们观察下上面的stage5, Task MaxTime=2.4Min, 但是stage5的整体耗时竟然可以达到55Min,
其实分区1000, 300个executor, 按照最大的TaskTime=2.4Min来估算所有Task运行完成时间, 那么时间应该是- 2.4Min * 3 + 2.4Min = 9.6Min
也就是最慢也就跑10分钟就能跑完整个stage, 但却跑了整整55分钟。

在这里插入图片描述
这里我们通过观察executor维度指标来观察, 发现大量的task的被集中到同一个executor上面,所以问题的根本是task的分配不均匀, 虽然后期spark的推理优化kill掉部分在executor运行较慢的task, 但是kill掉不合理的task不多, 整个task的分布还是很不合理。
这里主要跟一个计算概念有关, 就是让"数据离计算越近越好", 总之就是

  • memory > local file > same rack file > any file
  • 内存 > 本地文件 > 同一个机架的文件 > 可能在任何地方的文件
    所以Spark在task进行分配的时候, 也是秉承着这个原则, 但使用的术语不太一样, 这里就不细说了。
    可以在task的维度指标的locality level来查看task使用的数据来源。
    在这里插入图片描述
    解决该问题的思路, 就是使在分配任务的时候拒绝遵循"数据离计算越近越好", 让task合理分配到不同的机器, spark.locality.wait表示在放弃并在非本地节点上启动数据本地任务之前,等待启动数据本地任务需要多长时间,默认值为3s。
    当初我看得到3s的时候, 猜这个启动数据本地任务应该是一个lazy的操作, 只是把任务添加到线程池的任务队列, 不然不会产生分配不均匀, 这个观点待考究。
    这里直接将spark.locality.wait=0, 重新跑了一遍该作业, 查看了stage5的运行时间由- 55Min -> 3 Min 降低了52Min
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    其实spark提供了更加细致的调控数据源远近的waitTime:
    spark.locality.wait.process
    spark.locality.wait.node
    spark.locality.wait.rack
    上面这三个的默认值都是spark.locality.wait

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第274题H指数

题目&#xff1a; 题解&#xff1a; class Solution { public:int hIndex(vector<int>& citations) {int left0,rightcitations.size();int mid0,cnt0;while(left<right){// 1 防止死循环mid(leftright1)>>1;cnt0;for(int i0;i<citations.size();i){if(…

Kubernetes集群安装步骤

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、安装要求 在开始之前&#xff0c;部署Kubernetes集群集群需要满足以下几个条件&#xff1a; 一台多多台机器&#xff0c;操作系统CentOS.x-86_x…

数据结构——栈(顺序结构)

一、栈的定义 栈是一种数据结构&#xff0c;它是一种只能在一端进行插入和删除操作的特殊线性表。这一端被称为栈顶&#xff0c;另一端被称为栈底。栈按照后进先出&#xff08;LIFO&#xff09;的原则进行操作&#xff08;类似与手枪装弹后射出子弹的顺序&#xff09;。在计算…

服务攻防-应用协议cve

Cve-2015-3306 背景&#xff1a; ProFTPD 1.3.5中的mod_copy模块允许远程攻击者通过站点cpfr和site cpto命令读取和写入任意文件。 任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。 复制命令使用ProFTPD服务的权限执行&#xff0c;…

配置web服务器

当访问网站www.haha.com时显示&#xff1a;haha&#xff1b;当访问网站www.xixi.com/secret/显示&#xff1a;this is secret 第一步&#xff0c;配置一个新的IP 确认后 esc返回 第二步&#xff1a;重启ens160 第三步&#xff1a;创建目录&#xff0c;并且在文件内写入内容 第…

【b站/哔哩哔哩/bilibili】视频缓冲慢的解决方法

最近我的b站视频缓冲很慢&#xff0c;加载速度只有100多kb/s。这导致视频加载非常慢&#xff0c;看几秒就卡很久&#xff0c;有时候甚至黑屏。 据某些b站网友研究&#xff0c;b站存在如下问题&#xff1a;相关动态 “2.更改网络协议。是的&#xff0c;你没看错&#xff0c;转了…

Unity UGUI 之 Toggle

​本文仅作学习笔记与交流&#xff0c;不作任何商业用途本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正​ 1.什么是Toggle&#xff1f; Unity - Manual: Toggle 带复选框的开关&#xff0c;可…

【Unity】Android Failed to transform Error while dexing.

文章目录 一、背景二、问题描述三、原因和解决方法 一、背景 1、Unity 2021.3.33f1 2、Firebase 11.7.0 3、升级至API-34 二、问题描述 错误信息 Failed to transform play-services-measurement-api-21.5.0.aar (com.google.android.gms:play-services-measurement-api:21.5.…

算法力扣刷题记录 五十六【501.二叉搜索树中的众数】

前言 二叉搜索树操作&#xff0c;继续。 记录 五十六【501.二叉搜索树中的众数】 一、题目阅读 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;…

【Socket编程】基于TCP协议实现客户端与服务端的通信

前言 由于TCP是面向连接的&#xff0c;所以在创建套接字之后还需要进入监听状态&#xff0c;监听状态下可以获取客户端的请求。获得请求之后&#xff0c;服务器需要接受连接&#xff0c;之后再处理事务。 实现服务端具体步骤 总的来说&#xff0c;TCP服务端主要实现以下步骤…

达梦数据库的系统视图v$dmwatcher

达梦数据库的系统视图v$dmwatcher 查询当前登录实例所对应的守护进程信息&#xff0c;注意一个守护进程可以同时守护多个组的实例&#xff0c;因此查询结果中部分字段&#xff08;N_GROUP、SWITCH_COUNT&#xff09;为守护进程的全局信息&#xff0c;并不是当前登录实例自身的…

0401-403组合逻辑电路的分析设计竞争冒险

组合逻辑电路的分析设计&竞争冒险 4.组合逻辑电路1.目录2.教学基本要求3.序 关于组合逻辑电路 4.1组合逻辑电路分析与设计一、组合逻辑电路分析二、组合逻辑电路的分析步骤&#xff1a;三、组合逻辑电路的分析举例例1 奇校验电路例2.对输入的二进制求反码例3.一个工厂发电的…

使用 PVE 自签 CA 证书签发新证书

前言 PVE 安装时会自动创建一个有效期 10 年的 CA 证书, 我们可以利用这个 CA 证书给虚拟机中的 Web 应用签发新的 TLS 证书用于提供 HTTPS 服务. 下面以 PVE 虚拟机中通过 Docker 跑的一个 雷池 应用为例进行演示. PVE 证书位置 官方文档: https://pve.proxmox.com/wiki/Pr…

服务攻防-框架安全(漏洞复现)

关闭靶场 sudo docker-compose down 运行此靶场 sudo docker-compose up -d 查看启动环境 sudo docker ps 运行dockers容器 docker exec -it 64052abd288b /bin/bash thinkphp框架 thinkphp 2 - rce漏洞复现 docker exec -it 731dbae0e0b5 /bin/bash 集成化工具扫描 可以命令…

十五届蓝桥杯JAVA B组题目详解(持续更新中)

试题 B: 类斐波那契循环数 我发现蓝桥杯的题目现在就是要费时间去理解&#xff0c;所以还是审题很重要&#xff0c;这道题的思路就是&#xff0c;一个n位数的前n个数&#xff0c;都是对应的位数上的值&#xff0c;比如说12345&#xff0c;五位数是吧&#xff0c;那数列S的前五位…

phpstudy下载使用以及搭建本地SQL labs靶场

一&#xff0c;PHP study 小皮面板(phpstudy) - 让天下没有难配的服务器环境&#xff01; (xp.cn) 1&#xff0c;下载。 根据自己电脑系统下载对应的版本。 双击exe文件运行 选择下载目录&#xff08;路径不能有中文名&#xff09;。 2&#xff0c;使用。 启动阿帕奇和MySQ…

数据库第二次作业

1.建立数据库 2.插入数据 3.完成查询 &#xff08;1&#xff09;、显示所有职工的基本信息。 &#xff08;2&#xff09;、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 &#xff08;3&#xff09;、求出所有职工的人数。 &#xff08;4&#xff09;、列…

组队学习——贝叶斯分类器

前言 本次数据继续沿用上一次主题的【组队学习——支持向量机-CSDN博客】 数据处理部分延续【组队学习——支持向量机】主题的处理办法对应划分训练集和验证集 模型选择 本次贝叶斯分类器模型的较多&#xff0c;常用的为高斯朴素贝叶斯分类器、多项式朴素贝叶斯分类器、伯努…

JavaWeb总结

终于结束了JavaWeb的学习&#xff0c;个人感觉其实就是学习客户端与服务端交互的中间件&#xff0c;以及服务端处理的逻辑&#xff0c;来帮助我们构建整个项目的运转逻辑&#xff0c;从客户端到服务器再到客户端&#xff0c;核心是围绕着一系列的请求和响应如何处理&#xff0c…

嵌入式Linux学习: platform 设备驱动实验

在Linux中&#xff0c;Platform&#xff08;平台&#xff09;机制是一个重要的设备驱动管理框架&#xff0c;它主要在Linux 2.6内核及以后的版本中引入。Platform机制的主要目的是提供一种统一的方式来管理那些不直接挂靠在传统物理总线&#xff08;如USB、PCI、I2C、SPI等&…