spark集群简易搭建 spark集群的角色包括
转载
spark 运行流程:
Spark架构采用了分布式计算中的Master-Slave模型。Master是对应集群中的含有Master进程的节点,Slave是集群中含有Worker进程的节点。
- Master作为整个集群的控制器,负责整个集群的正常运行;
- Worker相当于计算节点,接收主节点命令与进行状态汇报;
- Executor负责任务的执行;
- Client作为用户的客户端负责提交应用;
- Driver负责控制一个应用的执行。
|
Spark集群部署后,需要在主节点和从节点分别启动Master进程和Worker进程,对整个集群进行控制。在一个Spark应用的执行过程中,Driver和Worker是两个重要角色。Driver 程序是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个Worker用来管理计算节点和创建Executor并行处理任务。在执行阶段,Driver会将Task和Task所依赖的file和jar序列化后传递给对应的Worker机器,同时Executor对相应数据分区的任务进行处理。
- Excecutor /Task 每个程序自有,不同程序互相隔离,task多线程并行
- 集群对Spark透明,Spark只要能获取相关节点和进程
- Driver 与Executor保持通信,协作处理
|
三种集群模式:
- 1.Standalone 独立集群
- 2.Mesos, apache mesos
- 3.Yarn, hadoop yarn
|
基本概念:
- Application =>Spark的应用程序,包含一个Driver program和若干Executor
- SparkContext => Spark应用程序的入口,负责调度各个运算资源,协调各个Worker Node上的Executor
- Driver Program => 运行Application的main()函数并且创建SparkContext
- Executor => 是为Application运行在Worker node上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。每个Application都会申请各自的Executor来处理任务
- Cluster Manager =>在集群上获取资源的外部服务 (例如:Standalone、Mesos、Yarn)
- Worker Node => 集群中任何可以运行Application代码的节点,运行一个或多个Executor进程
- Task => 运行在Executor上的工作单元
- Job => SparkContext提交的具体Action操作,常和Action对应
- Stage => 每个Job会被拆分很多组task,每组任务被称为Stage,也称TaskSet
- RDD => 是Resilient distributed datasets的简称,中文为弹性分布式数据集;是Spark最核心的模块和类
- DAGScheduler => 根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler
- TaskScheduler => 将Taskset提交给Worker node集群运行并返回结果
- Transformations => 是Spark API的一种类型,Transformation返回值还是一个RDD,所有的Transformation采用的都是懒策略,如果只是将Transformation提交是不会执行计算的
- Action => 是Spark API的一种类型,Action返回值不是一个RDD,而是一个scala集合;计算只有在Action被提交的时候计算才被触发。
|
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。