spark的工作机制:
用户在client端提交作业后,会由Driver运行main方法并创建spark context上下文。 SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend, Executor向SparkContext申请Task。SparkContext将应用程序分发给Executor,SparkContext构建成DAG有向无环图,将DAG有向无环图分解成Stage、将Taskset发送给Task Scheduler,最后由TaskScheduler将Task发送给Executor运行,Task在Executor上运行,运行完释放所有资源
spark中的核心组件:
Driver:spark驱动节点,负责实际代码的执行。
Driver在spark作业执行主要负责:
1.将用户程序转化为job
2.在Executor之间调度任务(task)
3.跟踪Executor的执行情况
4.通过ui界面可以查询运行情况
Executor:executor是一个jvm进程,负责spark作业中执行具体的任务,spark启动时,executor节点被同时启动,如何当前executor节点发生故障,spark应用(Application)也可以继续执行,会将出错