开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:Spark 原理_总体介绍_集群环境】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/12006
Spark 原理_总体介绍_集群环境
上一节小案例直接运行,如果将案例运行到生产环境下,案例需打包成架包提交到集群中去运行,要了解架包如何运行需要先了解集群环境如何运行。
进入笔记,如图所示:
因为集群中的每台机器都运行着 spark 程序,因而称为 spark 集群。Spark 集群如何运行程序?
假设 node 01是 master 的原因是什么?假设 Note 02是 worker 的原因是什么?因为 Note 01中运行着 master deamon,在 Note 02中运行 work deamon,因而称 node 01为 Moster,Node 02为 worker。
deamon 可以理解为守护进程的意义,进程是为了管理某些东西,管理机器或者某些资源。Master deamon 运行在node 01,意为管理 Node 01这一台机器,管理 master 的职责。worker deamon 运行在 Note 02中,意为管理Node 02这台机器,用于和 master 进行通信。
例如打包一个 spark 程序,需要把程序提交给 master 进行运行,此意味着 master 调度程序的运行,程序最终在executor 中进行,worker 负责和 master 进行交互,Master 将调度的任务赋予 worker,而 worker 向 master 认领任务,Worker deamon 负责去创建 executor。当程序运行完时,Worker deamon 负责去关闭 executor 程序。
以上为 master deamon 和 worker deamon 的作用。一个用于管理 master 节点,一个管理 worker 节点。一个用于分发任务,而另一个接收任务,运行,启动,管理 executor。
executor 运行在容器中,称为 executor backend,executor 是一个进程,需要依托于外部的环境,所以需要先运行executor backend。Worker damon 通过 executor backend 管理 executor,事实上,一个 executor backend 只负责一个 executor,Worker 通过 executor backend 管理 executor。
在 spark 集群中,有一个重要的角色: driver,是整个要运行 spark 集群 application 的驱动节点。
一个架包提交,会有一个 Scala class,通过 driver 运行 application,executor 负责运行方法,准备好整个环境,executor 和 driver 进行通信,负责整个任务的具体执行,运行结束,结果汇总给 driver,并呈现。action 操作最终获取结果,是将结果存放在 driver 中。
集群部署情况:
在 master 节点运行 master 的守护进程,是 master deamon,进行管理 master。
在 worker 节点中运行 worker,是 worker deamon,进行管理 worker 节点。和 Master 同时认领任务,开启executor backend,通过 executor backend 管理 executor,Driver 也运行在 worker 中,是 spark application 的调度者,驱动程序,最终结果获取者。