spark的几种模式下的运行流程

7.spark的有几种部署模式,每种模式特点?
1)本地模式
Spark不一定非要跑在hadoop集群,可以在本地,起多个线程的方式来指定。将Spark应用以多线程的方式直接运行在本地,一般都是为了方便调试,本地模式分三类
· local:只启动一个executor
· local[k]:启动k个executor
· local:启动跟cpu数目相同的 executor
2)standalone模式
分布式部署集群, 自带完整的服务,资源管理和任务监控是Spark自己监控,这个模式也是其他模式的基础,
3)Spark on yarn模式
分布式部署集群,资源和任务监控交给yarn管理,但是目前仅支持粗粒度资源分配方式,包含cluster和client运行模式,cluster适合生产,driver运行在集群子节点,具有容错功能,client适合调试,dirver运行在客户端
4)Spark On Mesos模式。官方推荐这种模式(当然,原因之一是血缘关系)。正是由于Spark开发之初就考虑到支持Mesos,因此,目前而言,Spark运行在Mesos上会比运行在YARN上更加灵活,更加自然。用户可选择两种调度模式之一运行自己的应用程序:

  1. 粗粒度模式(Coarse-grained Mode):每个应用程序的运行环境由一个Dirver和若干个Executor组成,其中,每个Executor占用若干资源,内部可运行多个Task(对应多少个“slot”)。应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源,即使不用,最后程序运行结束后,回收这些资源。
  2. 细粒度模式(Fine-grained Mode):鉴于粗粒度模式会造成大量资源浪费,Spark On Mesos还提供了另外一种调度模式:细粒度模式,这种模式类似于现在的云计算,思想是按需分配。

spark的运行流程:standalone
1、当一个spark程序被提交之后,会在该节点启动一个Driver进程,Driver构建spark application的运行环境sparkContext(创建sparkcontext 主要对象包含DAGscheduler和TaskScheduler),Driver把Application注册到master,master会根据Application信息去worker节点启动executor
2、Executor内部会创建运行task的线程池,然后把启动的Executor反向注册给Dirver
3、Sparkcontext根据RDD依赖关系构建DAG图,将DAG图提交给DAGscheduler(DAG调度器)分解成多个stage(每个阶段都是一个任务集),并把taskset(任务集)发送给Task scheduler进行处理。executor向sparkcontext申请task,taskshceduler将task发放给executor运行,同时sparkcontext将应用程序发放给executor
4、task在executor上运行,把执行结果返回给任务调度器,然后反馈给DAG调度器,运行完后写入数据并释放所有资源

spark on yarn 的yarn-client模式:
1、客户端生成作业信息提交给resourcemanager
2、resourcemanager在本地的nodemanager启动container,并将application master分配给这个nodemanager
3、该nodemanager接收到resourcemanager分配的application master之后,启动application master并初始化作业,此时该nodemanager被称为Driver
4、application向resourcemanager申请资源,resourcemanager分配资源并让其他nodemanager启动executor
5、executor向本地启动的application master注册汇报并完成相应的任务

spark on yarn 的yarn-cluster模式:
1、客户端生成作业信息并提交给resourcemanager
2、resourcemanager在某一个nodemanager(yarn决定)分配container,并将application master分配给该nodemanager
2、nodemanager收到分配之后,启动application master并初始化作业,该nodemanager北城为Driver
3、application向resourcemanager申请资源,resourcemanager分发资源并通知其他nodemanager启动executor
4、executor向nodemanager的application master注册汇报并完成任务

spark on yarn 两种模式的区别:
yarn-client模式的Applicationmaster运行在提交任务的节点
yarn-cluster模式的Applicationmaster运行在集群选取的一个节点运行,不一定在提交任务的节点
yarn-client适合调试开发 yarn-cluster适合生产环境

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值