Spark并行度和任务调度

news2024/11/20 3:36:03

文章目录

    • 并行度
      • 如何设置并行度
      • 如何规划我们自己群集环境的并行度?
    • Spark的任务调度

并行度

  • Spark之间的并行就是在同一时间内,有多少个Task在同时运行。并行度也就是并行能力的设置,假设并行度设置为6,就是6个task在并行跑,有个6个task的前提下,RDD的分区就被规划为6个分区。

如何设置并行度

  • 规划并行度优先级:代码→客户端提交参数→配置文件→默认设置(默认为1,具体会根据文件的分片数来跑)。

  • 配置文件中设置

# conf/spark-defaults.conf中设置
spark.default.parallelism 100
# 客户端提交参数
spark-submit --conf "spark.default.parallelism=100"
# 在代码中设置
conf = SparkConf()
conf.set("spark.default.parallelism", "100")
  • Tips:全局并行度是推荐设置,不要针对RDD改分区,可能会影响内存迭代管道的构建或者会产生额外的Shuffle。reparation、coalesce、reparationBy等算子避免使用。

如何规划我们自己群集环境的并行度?

  • 一般来说我们设置为群集CPU核心的2-10倍(确保最小为2倍,最大一般来说为10倍适度超出也没什么问题)。
  • 为什么最少要设置成2倍呢?
    • CPU的一个核心同一时间只能干一件事,所以在100个核心的前提下,设置100个并行,就能保证cpu资源100%的利用,但是如果task压力不均衡,某个task先执行完了,就会导致某个CPU核心空闲。如果设置了800个并行,100个在运行,700个在等待,而某个task运行完之后,后续的task继续运行,不会造成CPU空闲,从而最大程度的利用群集的资源。

Spark的任务调度

  • Driver也就是我们通常理解的包工头。它的主要工作就是:

    • 1 逻辑DAG的构建
    • 2 分区DAG的构建
    • 3 Task划分
    • 4 将Task分配给Executor(民工)并监控其工作
  • Spark调度流程图:
    在这里插入图片描述

  1. Driver被构建出来。
  2. 构建SparkContext(执行环境入口对象)。
  3. 基于DAG Scheduler(DAG 调度器)构建逻辑Task的分配。
  4. 基于Task Scheduler(Task 调度器)将逻辑Task分配到各个Executor上干活,并监控它们。
  5. Worker(Executor)被监控,听它们的指令干活,并且定期汇报执行进度。
  • Driver内的的两个调度组件:
    • DAG 调度器
      工作内容:将逻辑DAG图进行处理,最终得到逻辑上的Task划分。
    • Task 调度器
      基于DAG Scheduler的产出,来规划这些逻辑的Task,应该在哪个物理Executor上面去运行,并且监控它们。

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

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

相关文章

蒙特卡洛原理及实例(附Matlab代码)

文章目录一、理论基础1.1 伯努利大数定理1.2 辛钦大数定理1.3 切比雪夫大数定理1.4 三者区别和联系二、蒙特卡洛法2.1 蒙特卡洛的起源2.2 蒙特卡洛的解题思路2.2 蒙特卡洛法的应用三、几个小栗子3.1 求解定积分3.1.1 解析法3.1.2 蒙特卡洛法3.2 求解六边形面积3.2.1 解析法3.2.…

[附源码]SSM计算机毕业设计基于的高校学生考勤管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

支持向量机

目录 支持向量机 0. 由来 1. 核心思想 2. 硬间隔支持向量机 2.1 间隔最大化 2.1.1 函数间隔2.1.2 几何间隔2.1.2 间隔最大化 2.2 转换为拉格朗日对偶问题 2.2.1 拉格朗日对偶问题2.2.2 将问题转换为拉格朗日对偶问题 3. 软间隔支持向量机 4. 泛函基础 4.1 度量&#xff…

Flutter 8 个优秀动画 Packages

Flutter 8 个优秀动画 Packages 前言 动画对于使移动应用程序的用户界面感觉自然流畅至关重要。加上交互式元素和平滑的过渡,它们使应用程序简单易用。 正文 Flutter Animate 组件 Package https://pub.dev/packages/flutter_animate 一个 performant 库&#xff0c…

springboot simple (9) springboot jpa(Hibernate)

返回目录 1 JPA Hibernate Hibernate是一个全自动的ORM框架(Object Relational Mapping ,对象关系映射)。 Spring Data JPA: 是Spring Data的子模块,JPA默认使用hibernate作为ORM实现。 2 springboot继承Hibernate 第1步&…

【Servlet】7:监听器和过滤器的原理和应用

目录 | 监听器 监听器 基本概述 ServletContextListener监听器 ServletContextAttributeListener监听器 监听器的应用场景 | 过滤器 过滤器 基本概述 过滤器 实现步骤 过滤器 应用场景 本文章属于后端全套笔记的第三部分 (更新中)【后端入门到入…

leetcode 494.目标和 动态规划背包问题 (c++版本)

题目描述 说白了就是让一部分数减去剩下的一部数使得差值为target,计算有多少中组合的方法 下面来个数学公式推导一下 leftrightsumleft−righttargetleftsum−lefttargetleft(sumtarget)/2leftright sum\\ left-righttarget\\ leftsum-lefttarget\\ left(sumtarge…

用户行为分析-如何用数据驱动增长

用户行为分析-如何用数据驱动增长 2022-11-22 看完书才知道是 GrowingIO 公司出的一本书,干货还是挺多的。 第一章从商业进化的角度认识用户行为数据的重要性,帮助大家了解什么是用户行为数据,以及用户行为数据怎么发挥价值。接着四章详细…

【操作系统】2.2 操作系统的调度

2.2.1 操作系统之处理机调度的概念及层次 2.2.1操作系统之处理机调度的概念及层次_StudyWinter的博客-CSDN博客_操作系统调度的层次 高级调度(作业调度):外存-》内存 中级调度(内存调度):外存-》内存 低…

用最少的代码模拟gRPC四种消息交换模式

我们知道,建立在HTTP2/3之上的gRPC具有四种基本的通信模式或者消息交换模式(MEP: Message Exchange Pattern),即Unary、Server Stream、Client Stream和Bidirectional Stream。本篇文章通过4个简单的实例演示它们在.NE…

HTML+CSS大作业 格林蛋糕(7个页面) 餐饮美食网页设计与实现

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

编写第一个Qt程序和分析第一个Qt程序

文章目录编写第一个Qt程序新建一个项目项目的文件组成和管理项目的编译、调试与运行分析第一个Qt程序创建项目1) main.cpp2) mainwindow.h和mainwindow.cpp编码实现简易的窗口界面编写第一个Qt程序 已剪辑自: http://c.biancheng.net/view/1817.html 学习一种编程语言或编程环…

最漂亮:yWorks yFiles Diagramming SDK 5.4.0.2

yWorks yfiles Diagramming SDK 5.4.0.2 卓越的 绘图 SDK 使用 yFiles 自动布局的图表 您的数据可视化软件开发套件 yFiles是行业领先的 图表软件库。20 多年来,公司和机构一直在使用此 SDK 来 描述、编辑和分析他们的连接数据。 准备好探索自动布局和交互式图形组…

Qt-OpenCV学习笔记--人脸识别--基于Haar特征的cascade分类器

概述 基于Haar特征的cascade分类器(classifiers) 是Paul Viola和 Michael Jone在2001年,论文”Rapid Object Detection using a Boosted Cascade of Simple Features”中提出的一种有效的物品检测(object detect)方法。它是一种机器学习方法,通过许多正…

G1D21-作业-AttacKGSVMkg_book偷懒哈哈哈

唔~咖啡泡出来好好看呀! 一、写作业 第一件事是将昨天读的NER综述补充到作业之中~大概30min 50分钟,补充完了思维导图和文档,明确了下一步论文的阅读方向——NER的综述/网安NER具体技术类文章(找找最新的叭)。 二、…

2022 IDEA大会引领科技创新趋势 沈向洋团队重磅发布低空经济白皮书

11月22日,2022 IDEA大会在深圳顺利开幕。大会由深圳市科技创新委员会、深圳市人才工作局和深圳市福田区人民政府指导,粤港澳大湾区数字经济研究院(International Digital Economy Academy,简称“IDEA研究院”)主办。 …

leetcode 216. 组合总和 III

文章目录题目思考代码和注释总结题目 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 来源&…

【图像分类】Efficientnet的学习

文章目录1. Efficientnet的学习1.1 网络模型1.2 MBConv卷积块1.3 模型规模1.4 模型训练方式2. Efficientnet-pytorch代码3.参考1. Efficientnet的学习 论文:https://arxiv.org/abs/1905.11946 1.1 网络模型 主要结构: 基线模型EfficientNet-B0Effici…

ImmunoChemistry艾美捷Annexin DNA损伤ELISA试剂盒方案

使用ImmunoChemistry艾美捷DNA损伤(8-OHdG)ELISA试剂盒定量尿液、细胞培养物、血浆和其他样品基质中的8-OHdG。该试剂盒提供了快速的培养时间、稳定的试剂和用户友好的方案。使用吸光度板读取器分析结果。 8-羟基-2-脱氧鸟苷(8-OHdG&#xff…

开放式激光振镜运动控制器:C++ 快速调用图形库应用

今天,正运动小助手给大家分享一下开放式激光振镜运动控制器:C快速调用图形库应用,本文以二维码打标、文本打标、矢量图形打标为例,解决用户在激光打标时需要进行各种复杂的操作和函数库调用时容易出现的错误问题。 01 ZMC408SCAN…