前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark系列(三)Spark的工作机制

Spark系列(三)Spark的工作机制

作者头像
张凝可
发布2019-08-22 10:53:28
5270
发布2019-08-22 10:53:28
举报
文章被收录于专栏:技术圈技术圈

什么时候才能回归到看论文,写感想的日子呀~刚刚交完房租的我血槽已空。看了师妹关于Spark报告的PPT,好怀念学生时代开组会的时光啊,虽然我已经离开学校不长不短两个月,但我还是非常认真的翻阅了,并作为大自然的搬运工来搬运知识了。

Spark的执行模式

1、Local,本地执行,通过多线程来实现并行计算。 2、本地伪集群运行模式,用单机模拟集群,有多个进程。 3、Standalone,spark做资源调度,任务的调度和计算。部署繁琐。

4、Yarn, Mesos,通用的统一资源管理机制,可以在上面运行多种计算框架。

着重介绍比较广泛应用集群管理器Yarn

YARN 是在 Hadoop 2.0中引入的集群管理器,它可以让多种数据处理框架运行在一个共享的资源池上,并且通常安装在与 Hadoop 文件系统(简称 HDFS)相同的物理节点上。

第一步是找到你的 Hadoop 的配置目录,并把它设为环境变量HADOOP_CONF_DIR。这个目录包含 yarn-site.xml 和其他配置文件;如果你把 Hadoop 装到 HADOOP_HOME 中,那么这个目录通常位于HADOOP_HOME/conf 中,否则可能位于系统目录 /etc/hadoop/conf中。然后用如下方式提交你的应用: export HADOOP_CONF_DIR="..." spark-submit --master yarn yourapp

有两种将应用连接到集群的模式:客户端模式以及集群模式。在客户端模式下应用的驱动器程序运行在提交应用的机器上(比如你的笔记本电脑),而在集群模式下,驱动器程序也运行在一个 YARN 容器内部。这就涉及了应用的两种提交方式。

应用的提交方式

Driver运行在客户端,即为客户端模式

Driver运行在集群上,是集群中的某一个Worker,即集群模式

执行流程

基于上图我们将详细介绍资源的调度和任务的分配,主要从Application的调度-Job调度-Stage调度来说明

Application的调度

多用户需要共享集群资源时,可以依据集群管理者的配置,分配资源

YARN:配置每个应用分配的executor数量,每个executor占用的的内存大小和CPU核数

Job的调度

Job的调度符合FIFO, 调度池里面是很多任务集,任务集有两个ID ,JOBID 和stageID,ID小的先执行。 JOB: FIFO

stage: DAGScheduler

Stage的调度

Stage的DAG以最后执行的 Stage为根进行广度优先遍历,遍历到最开始执行的Stage执行。DAGScheduler中还维持了几个重要的Key-Value集 :

waitingStages中记录仍有未执行的父Stage,防止过早执行;

runningStages中保存正在执行的Stage,防止重复执行;

failedStages中保存执行失败的Stage,需要重新执行。 DONE

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年03月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spark的执行模式
  • 应用的提交方式
  • 执行流程
    • Application的调度
      • Job的调度
        • Stage的调度
        相关产品与服务
        GPU 云服务器
        GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档