概述
什么时候才能回归到看论文,写感想的日子呀~刚刚交完房租的我血槽已空。看了师妹关于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: FIFOstage: DAGScheduler
Stage的调度
Stage的DAG以最后执行的 Stage为根进行广度优先遍历,遍历到最开始执行的Stage执行。DAGScheduler中还维持了几个重要的Key-Value集 :
waitingStages中记录仍有未执行的父Stage,防止过早执行;
runningStages中保存正在执行的Stage,防止重复执行;
failedStages中保存执行失败的Stage,需要重新执行。DONE
最后
以上就是孝顺荔枝为你收集整理的Spark系列(三)Spark的工作机制的全部内容,希望文章能够帮你解决Spark系列(三)Spark的工作机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复