哪个网站有做兼职的印章在线生成器
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:19
当前位置: 首页 > news >正文
哪个网站有做兼职的,印章在线生成器,广告设计公司企业标志设计,wordpress 无法升级目录 一、DAG #xff08;1#xff09;概念 #xff08;2#xff09;Job和Action关系 #xff08;3#xff09;DAG的宽窄依赖关系和阶段划分 二、Spark内存迭代计算 三、spark的并行度 #xff08;1#xff09;并行度设置 #xff08;2#xff09;集群中如何规划并…目录 一、DAG 1概念 2Job和Action关系 3DAG的宽窄依赖关系和阶段划分 二、Spark内存迭代计算 三、spark的并行度 1并行度设置 2集群中如何规划并行度 四、spark任务调度 五、Spark运行概念名词 1概率名词 2Spark运行层级梳理 一、DAG Spark的核心是根据RDD来实现的Spark Scheduler则为Spark核心实现的重要一环其作用就是任务调度。Spark的任务调度就是如何组织任务去处理RDD中每个分区的数据根据RDD的依赖关系构建DAG基于DAG划分Stage,将每个Stage中的任务发到指定节点运行。基于Spark的任务调度原理可以合理规划资源利用做到尽可能用最少的资源高效地完成任务计算。 wordcount_DAG流程图 1概念 DAG有向无环图。有方向没有形成闭环的一个执行流程图。 有向有方向。 无环没有形成闭环。 2Job和Action关系 一个Action会产生一个Job一个应用程序内的子任务每个Job会产生各自自己的DAG流程图。如上图有三个Action所以有三个Job每一个链路对应这每个Job的DAG流程图。 3DAG的宽窄依赖关系和阶段划分 在SparkRDD前后之间的关系分为 ①窄依赖父RDD的一个分区全部将数据发给子RDD的一个分区一对一。 ②宽依赖别名shuffle父RDD的一个分区将数据发给子RDD的多个分区一对多。 对于Spark来说会根据DAG按照宽依赖划分不同的DAG阶段。 划分依据从后向前遇到宽依赖就划分出一个阶段称为Stage。在Stage内部一定是窄依赖。 二、Spark内存迭代计算 如图基于带有分区的DAG以及阶段划分。可以从图中得到逻辑上最优的task分配一个task是一个线程来具体执行那么如上图 task1中rdd1、rdd2、rdd3的迭代计算都是由一个task(线程完成)这一阶段的这一条线是纯内存计算。 如上图task1、task2、task3就形成了三个并行的内存计算管道。Spark默认受到全局并行度的限制除了个别算子有特殊分区情况,大部分的算子都会遵循全局并行度的要求来规划自己的分区数。如果全局并行度是3其实大部分算子分区都是3。 注意:Spark我们一般推荐只设置全局并行度不要再算子上设置并行度除了一些排序算子外计算算子就让他默认开分区就可以了。 面试题1 : Spark是怎么做内存计算的? DAG的作用? Stage阶段划分的作用? ①Spark会产生DAG图。 ②DAG图会基于分区和宽窄依赖关系划分阶段。 ③一个阶段的内部都是窄依赖窄依赖内,如果形成前后1:1的分区对应关系,就可以产生许多内存迭代计算的管道这些内存迭代计算的管道,就是一个个具体的执行Task。 ④一个Task是一个具体的线程,任务跑在一个线程内,就是走内存计算了。 面试题2: Spark为什么比MapPeduce快 ①Spark的算子丰富MapReduce算子匮乏(Map和Reduce)MapReduce这个编程模型很难在一套MR中处理复杂的任务。很多的复杂任务是需要写多个MapReduce进行串联。多个MR串联通过磁盘交互数据。 ②Spark可以执行内存迭代算子之间形成DAG基于依赖划分阶段后在阶段内形成内存迭代管道。但是MapReduce的Map和Reduce之间的交互依旧是通过硬盘来交互的。总结: 编程模型上Spark占优(算子够多)。 算子交互上和计算上可以尽量多的内存计算而非磁盘迭代。 三、spark的并行度 Spark的并行:在同一时间内有多少个task在同时运行 并行度:并行能力的设置 比如设置并行度6其实就是要6个task并行在跑。在有了6个task并行的前提下rdd的分区就被规划成6个分区了。 1并行度设置 可以在代码中和配置文件中以及提交程序的客户端参数中设置优先级从高到低 ①代码中 ②客户端提交参数中配置文件中 ③默认(1但是不会全部以1来跑多数时候基于读取文件的分片数量来作为默认并行度) 全局并行度配置的参数 spark.default.parallelism 全局并行度是推荐设置,不要针对RDD改分区,可能会影响内存迭代管道的构建,或者会产生额外的Shuffle。 2集群中如何规划并行度 结论设置为CPU总核心的2-10倍。比如集群可用CPU核心是100个建议并行度是200-1000。确保是CPU核心的整数倍即可最小是2倍最大一般是10或更高适量即可。 为什么要设置最少2倍 CPU的一个核心同一时间只能干一件事情。所以在100个核心的情况下设置100个并行就能1让CPU 100%出力。这种设置下如果task的压力不均衡某个task先执行完了。就导致某个CPu核心空闲。所以我们将Task(并行)分配的数量变多比如800个并行同一时间只有100个在运行700个在等待。但是可以确保某个task运行完了。后续有task补上不让cpu闲下来最大程度利用集群的资源。规划并行度只看jiqunzongCPU核数。 四、spark任务调度 Spark的任务由Driver进行调度这个工作包含 ①逻辑DAG产生 ②分区DAG产生 ③Task划分 ④将Task分配给Executor并监控其工作 如图Spark程序的调度流程如图1-4都是Driver的工作5是Worker的工作 ①Driver被构建出来 ②构建SaprkContext执行环境入口对象 ③基于DAG SchedulerDAG调度器goujainluojiTask分配 ④基于TaskSchedulerTask调度器将逻辑Task分配到各个Executor上干活并监控他们 ⑤WorkerExecutor被TaskScheduler管理监控听从它们的指令干活并定期汇报进度 DAG调度器DAG Scheduler将逻辑的DAG图进行处理最终得到逻辑上的Task划分重点 Task调度器Task Scheduler基于DAG Scheduler的产出来规划这些逻辑的task应该在哪些物理的Executor上运行以及监控管理它们的运行。 五、Spark运行概念名词 1概率名词 Spark运行概念名词 TermMeaningApplication 用户编写的Spark应用程序当该应用程序在集群上运行时包含一个driver program和多个executors。 Application jar 包含Spark的应用程序的jar包 Driver program 是一个进程包含Spark应用程序application的main方法并且创建SparkContext。其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责和ClusterManager通信进行资源的申请、任务的分配和监控等当Executor部分运行完毕后Driver负责将SparkContext关闭。通常用SparkContext代表Driver。 Cluster manager 集群的管理者SparkContext会与之进行通信主要负责集群资源的管理包括yarn、mesos。 Deploy mode 运行模式用来设定driver端在哪里运行主要包括client和cluster。cluster模式中driver端运行在集群中一个节点client模式下driver运行在集群之外。 Worker node 集群中运行spark任务的节点。 Executor 一个进程在worker node 运行应用程序他可以运行task计算和保存应用程序中所用的数据到内存或者磁盘上。每一个应用程序拥有其独有的executor。在Spark on Yarn模式下其进程名称为CoarseGrainedExecutorBackend类似于Hadoop MapReduce中的YarnChild。一个CoarseGrainedExecutorBackend进程有且仅有一个executor对象它负责将Task包装成taskRunner并从线程池中抽取出一个空闲线程运行Task。每个CoarseGrainedExecutorBackend能并行运行Task的数量就取决于分配给它的CPU的个数了。 Task 被送到某个Executor上的工作单元和hadoopMR中的MapTask和ReduceTask概念一样是运行Application的基本单位多个Task组成一个Stage,而Task的调度和管理等是由TaskScheduler负责。 Job并行化的运算集合StageStage是每一个Job处理过程要分为的几个阶段一个Stage可以有一个或多个Task。TaskScheduler实现Task分配到Executor上执行。 2Spark运行层级梳理 ①一个Spark环境可以运行多个Application ②一个代码运行起来,会成为一个Application ③Application内部可以有多个Job ④每个Job由一个Action产生,并且每个Job有自己的DAG执行图 ⑤一个Job的DAG图会基于宽窄依赖划分成不同的阶段 ⑥不同阶段内基于分区数量,形成多个并行的内存迭代管道 ⑦每一个内存迭代管道形成一个Task ( DAG调度器划分将Job内划分出具体的task任务,一个Job被划分出来的task在逻辑上称之为这个job的taskset )
- 上一篇: 哪个网站有摄影作品平台网站怎么做的好
- 下一篇: 哪个网站域名更新快wordpress视频模块
相关文章
-
哪个网站有摄影作品平台网站怎么做的好
哪个网站有摄影作品平台网站怎么做的好
- 技术栈
- 2026年03月21日
-
哪个网站有免费的模板公众号平台怎么弄的
哪个网站有免费的模板公众号平台怎么弄的
- 技术栈
- 2026年03月21日
-
哪个网站有png素材厦门做网站xm37
哪个网站有png素材厦门做网站xm37
- 技术栈
- 2026年03月21日
-
哪个网站域名更新快wordpress视频模块
哪个网站域名更新快wordpress视频模块
- 技术栈
- 2026年03月21日
-
哪个网站找做软件下载商标设计logo图案软件免费
哪个网站找做软件下载商标设计logo图案软件免费
- 技术栈
- 2026年03月21日
-
哪个网站做ppt徐州建设局网新网站
哪个网站做ppt徐州建设局网新网站
- 技术栈
- 2026年03月21日
