百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

19.Spark编程模型-运行架构(spark编程概述)

ccwgpt 2024-10-09 08:26 27 浏览 0 评论

核心概念:

Application

基于Spark的用户程序,包含了driver程序和集群的executor

Driver Program

运行main函数并且新建SparkContext的程序

Executor

在一个work node上为某应用启动的一个进程,负责运行任务。

Cluster Manager

在集群上获取资源的外部服务,standalone,Mesos,Yarn

Worker node

集群上可以运行应用代码的节点

Task

被送到某个Executor上的工作单元

Job

包含很多任务的并行计算,可以看做是Spark和action

Stage

一个job会被拆成多个任务

Master(standalone):资源管理的主节点(进程)

Cluster Manager:在集群上获取资源的外部服务(例如standalone,Mesos,Yarn )

Worker Node(standalone):资源管理的从节点(进程) 或者说管理本机资源的进程

Application:基于Spark的?用户程序,包含了driver程序和运行在集群上的executor程序

Driver Program:用来连接工作进程(Worker)的程序

Executor:是在一个worker进程所管理的节点上为某Application启动的?一个进程,该进

程负责运行任务,并且负责将数据存在内存或者磁盘上。每个应?用都有各自独?立的

executors

Task:被送到某个executor上的工作单元

Job:包含很多任务(Task)的并行计算,可以看做和action对应

Stage:?个Job会被拆分很多组任务,每组任务被称为Stage(就像Mapreduce分map task

和reduce task一样)

总结

一个application包含driver和executor,可以包含多个job(由action触发job),每个job可以根据拆成多个stage(根据宽依赖拆分),每个stage又会有一组task,这组task会发到worker node上去运行,运行的时候会启动executor。

stage的task数由stage最后一个task的分区数决定(也是这个stage的并行度)。

每个task的计算逻辑,就是一个pipline(处理数据就跟流水线作业一样)

pipline什么时候落地磁盘?

1.shuffle write阶段

2.如果对某一个RDD执行了持久化。

application组成

Spark运行架构解析

RDD遇到宽依赖时会shuffle,以shuffle为边界划分stage

运行过程

SparkContext向集群申请资源,集群分配资源,执行excutor,驱动程序将Spark应用程序的相关代码文件传给excutor,在excutor上启动task,task执行完成之后向driver返回结果或直接写到外面的原生数据里面。

总结就是:

application向集群注册,申请资源,将代码发送到各个节点,在节点上运行各个task

DAGScheduler

TaskSchedule

根据运行时间跟最佳位置决定task放到哪个位置运行

集群架构

Local模式

本地模式,默认情况是本地运行模式。

./sbin/spark-submit.sh --master local[4]

standalone模式

standalone详细过程

Spark On Yarn架构解析

为什么YARN

共享资源,方便集群管理

回顾基本流程

Yarn cluster

Yarn standalone是0.9之前版本的叫法,1.0开始更名为Yarn cluster

Driver和AM是一起的,client是单独

Spark Driver首选作为一个ApplicationMaseter在Yarn集群中启动,客户端提交给ResourceManger的每个job都会在集群的worker节点上分配一个唯一的AM。

由该AM管理权生命周期的应用。因为Dviver程序在Yarn中运行,所以事先不用启动Spark Master/Client,应用程序的运行结果不能在客户端显示(可以在history server中查看)

Yarn client

client和Driver在一起(运行在本地)AM只用来管理资源。

默认是client模式

在yarn-client模式下,Driver运行在client上,通过AM向RM获取资源。本地Driver负责与所有的executor container运行交换,并将结果汇总,结束掉终端,相当于kill掉这个spark应用,一般来说,如果运行结果仅仅返回到terminal的时候需要配置这个。

如何选择

运行结果希望终端可看,用client模式

运行结果过大,client看不了,用custer模式

数据存储到hdfs的建议用cluster

补:YARN

1.YARN概述

Apache Hadoop YARn 是一种新的Hadoop资源管理器,它是一个通用的资源管理系统,,可为上层应用提供统一的资源管理和调度

2.Spark on Yarn配置部署

3.Spark on Yarn运行架构解析

4.其他配置和注释事项

Yarn在Hadoop生态中的位置

Yarn产生背景

随着互联网的告诉发展,数据急剧增加,Mapreduce这种基于磁盘的离线计算框架已经不能满足应用要求,从而出现一些新的计算框架,应对各种场景,包括内存计算框架,流式计算框架和迭代计算框架,而MRv1不能支持多种计算框架并存。

YARN基本架构

ResouceManager(RM)

ResouceManager负责集群资源的统一管理和调度,承担JobTracker的角色,整个集群只有一个可用状态。

1.处理客户端请求

2.启动或监控ApplicationMaster

3.监控NodeManger

4.资源的分配与调用

NodeManger(NM)

NodeManger管理YARN集群中的每个节点,NodeManger提供针对集群中每个节点的服务,从监督对一个容器的终身管理到监事资源和跟踪节点管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源,NM有以下作用:

1.管理单个节点上的资源

2.处理来自RM的命令

3.处理来自ApplicationMaster的命令

ApplicationMaster(AM)

每个应用有一个,负责应用程序管理。

ApplicationMaster负责协调来自RM的资源,并通过NM监事容器的执行和资源使用(CPU核心,内存),但未来会带来机遇手头任务的新资源类型(比如图形处理单元或专用处理设备),AM有以下作用:

1.负责数据的切分

2.为应用程序申请资源并分配给内部的任务

3.任务的监控与容错

Container

Container是YARN中的资源抽象,它封装了讴歌节点上的多维资源,如内存,磁盘,CPU,网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container的资源,Container有以下作用:

1.对任务运行环境进行抽象,封装CPU,内存,等多维度的资源以及环境变量,启动没拿过来的任务运行的相关信息。

相关推荐

谷歌正在为Play商店进行Material Design改造

谷歌最近一直忙于在其应用程序中完成MaterialDesign风格的改造,而Play商店似乎是接下来的一个。9to5Google网站报道,有用户在Play商店的最新版本中发现了新界面,暗示该应用和网...

企业网站免费搭建,定制化建站CMS系统

科腾软件企业网站CMS管理系统已完成开发工作,首次开源(全部源码)发布。开发工具:VisualStudioEnterprise2022数据库:SQLite(零配置,跨平台,嵌入式)开发...

您需要的 11 个免费 Chrome 扩展程序

来源:SEO_SEM营销顾问大师Chrome扩展程序是SEO的无名英雄,他们在幕后默默工作,使您的策略脱颖而出并提高您的努力效率。从竞争对手研究到审核您的网站,速度比您说“元描述”还快,这些小工具发...

户外便携设备抗干扰困境如何破局?CMS-160925-078S-67给出答案

  在户外复杂的电磁环境中,便携式设备中的扬声器需具备出色抗干扰能力,CUID的CMS-160925-078S-67在这方面表现突出。  从其结构设计来看,矩形框架虽主要为适配紧凑空...

一个基于NetCore开发的前后端分离CMS系统

今天给大家推荐一个开源的前后端分离架构的CMS建站系统。项目简介这是一个基于.Net3构建的简单、跨平台、模块化建站系统。系统业务简单、代码清晰、层级分明、全新架构便于二次扩展开发。支持多种数据库,...

本地Docker部署ZFile网盘打造个人云存储

前言本文主要介绍如何在LinuxUbuntu系统使用Docker本地部署ZFile文件管理系统,并结合cpolar内网穿透工具实现远程访问本地服务器上的ZFile传输与备份文件,轻松搭建个人网盘,无...

pcfcms企业建站系统 免费+开源的企业内容管理系统

项目介绍pcfcms是基于TP6.0框架为核心开发的免费+开源的企业内容管理系统,专注企业建站用户需求提供海量各行业模板,降低中小企业网站建设、网络营销成本,致力于打造用户舒适的建站体验。演示站...

【推荐】一个高颜值且功能强大的 Vue3 后台管理系统框架

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍SnowAdmin是一款基于Vue3、TypeScript、Vite5、Pinia、Arco-Desi...

java开源cms管理系统框架PublicCMS后台管理系统

一款使用Java语言开发的CMS,提供文章发布,图片展示,文件下载,用户权限、站点模块,内容管理、分类等功能。可免费用于商业用途maven工程数据库脚本在工程中database文件夹下代码结构:效果...

一定要大量读书:当我问Deepseek,它给出的高效阅读方法厉害了!

一年一度的世界读书日,总该写点什么。于是,我去问Deepseek给我推荐人生破局必读的10本书,结果它给了我回复,竟然10本推荐的书籍里,我都曾经浏览过,同时还给出破局关键。而说浏览过,不是读过,是因...

《搜神札记》:不应磨灭的惊奇(小说《搜神记》)

□黄勃志怪传说的书写一直是文人墨客的后花园,晚近尤盛,从张岱到袁枚到纪昀,收集那些或阴森或吊诡的行状故事,遂成一类,到民国年间,周作人挟此遗传,捋袖子拿希腊神话动刀,乃兄鲁迅不甘其后,《故事新编》虎...

《如何构建金字塔》之第三章总结(构建金字塔结构的方法有)

“没有什么比一套好理论更有用了。”——库尔特.勒温这篇读后感依然引用了这句库尔特.勒温名言,这句话也是我读芭芭拉.明托这本书的初衷。今天就“如何构建金字塔”,我来谈谈我的读后心得。我热爱写作,但是写...

《助人技术》第一章助人引论内容框架

第一章内容基本呈现如何成为助人者(心理咨询师)以及一些相关基础知识,对于进入这个行业有兴趣以及希望通过心理咨询寻求帮助但存有疑虑的当事人,都值得一读。心理咨询的三个阶段(不是说严格的三个阶段,而是广义...

AI助手重构读后感写作流程:从提纲到完整性思考的转换

大家好!你有没有遇到过读完一本书,想要写读后感,却不知道从何下手的情况呢?今天我们要来探讨一下如何利用稿见AI助手来重构读后感写作流程,从提纲到完整性思考的转换。让我们一起来看看这个全新而又实用的方法...

图解用思维导图做读书笔记技巧(图解用思维导图做读书笔记技巧视频)

做阅读笔记非常有利于读后进行有效的深入思考,而思维导图这一强大的工具其最大的特点就是架构清晰,在阅读过程中对文章的分析、总结、分类起着很大的辅助作用。思维导图读书笔记步骤:1、阅读大纲。首先要快速浏览...

取消回复欢迎 发表评论: