Spark架构

https://blog.csdn.net/swing2008/article/details/60869183

1. 架构

    cluster manager:控制整个集群,监控worker,在yarn模式中为资源管理器

    worker节点:从节点,负责控制计算节点,启动executor或者driver

    driver:运行application的main()函数

    executor:执行器,是为某个application运行在worker node上的一个进程

2. spark运行特点

    每个application获取专属的executor进程

    spark与资源管理器无关,只要能够获取executor进程,并能保持通信就可以

    提交sparkcontext的client应该靠近worker节点(运行executor的节点),最好是在一个rack里,因为spark application运行过程中sparkcontext和executor之间有大量的信息交换

    task采用了数据本地性和推测执行的优化机制

3. 常用术语

    application:用户编写的spark应用程序,包括driver功能的代码和executor代码

    driver:运行上述application的main函数并创建sparkcontext,创建sparkcontext目的是为了准备spark应用程序的运行环境,在spark中有sparkcontext负责与clustermanager通信,进行资源申请、任务分配和监控,当executor部分运行完毕后,driver同时负责将sparkcontext关闭,通常用sparkcontext代表driver

    executor:某个application运行在worker节点上的一个进程,该进程负责运行某些task,并且负责将数据存在内存或磁盘上

    cluster manager:在集群上获取资源的外部服务,在yarn下,主要指resourcemanager

    worker:集群中任何可以运行application代码的节点,在spark on yarn模式下,就是nodemanager节点

    task:被送到某个executor上的工作单元,是运行application的基本单位,多个task组成一个stage,而task的调度和管理是由taskscheduler负责

    job:包含多个task组成的并行计算,一个application往往会产生多个job

    stage:每个job会被拆分成多组task,作为一个taskset,其名称为stage,stage的划分和调度是由dagscheduler负责的,stage有非最终的stage(shuffle map stage)和最终的stage(result stage)两种,stage的边界就是发生shuffle的地方


















    

你可能感兴趣的:(Spark架构)