1.关键词了解
关于对Spark的关键词的解释,官网有很详细的描述,地址如下:
spark名词解释
名字 | 解释 |
---|---|
Application | spark中比较大的概念,是一个基于spark的应用程序,包括Driver和Executors |
Application jar | 需要我们开发的应用程序的jar包 |
Driver program | 包括运行程序的主函数和SparkContext(上下文环境) |
Cluster manager | 得到集群资源的外部服务如yarn等 |
Deploy mode | Driver运行位置,分为client和cluster |
Worker node | 工作节点,在yarn中相当于NM |
Executor | 在工作节点上为该应用程序启动的进程,用于运行任务,并将数据保存在内存或磁盘,不同应用程序之间Executor互相无联系。 |
Task | Executor的基本执行单元 |
Job | 作为一个任务,每一个action操作就是一个job,作为一次计算序列 |
Stage | 每次shuffle操作将job一分为二个stage。 |
2.Spark架构图
总结:
- 每个应用程序的都有自己的Executor,他们相互独立,互不通信,数据不能在应用程序之间共享
- 平台无关性,Spark不关注运行平台是什么,只要可以获取执行进程,并且自己可以相互通信就可以。也就是说底层资源管理程序可以为yarn等
- Driver端必须要监听Executor端运行状况
- Driver端不能远离工作节点
从这个稍微详细的图中我们可以了解到一些东西:
- Driver端先向集群管理的应用程序来申请资源,然后才能启动Executor,分配task。
- 在整个执行的流程,Driver和集群管理的应用程序(yarn等)都监控着task和Executer的状态