Spark集群组件
@H_404_1@Spark是典型的Master/Slave架构,集群主要包括以下4个组件:
@H_404_1@Driver:Spark框架中的驱动器,运行用户编写Application 的main()函数。类比于MapReduce的MRAppmaster
@H_404_1@Master:主节点,控制整个集群,监控worker。在Yarn模式中为全局资源管理器
@H_404_1@Worker:从节点,负责控制计算节点,启动Executor。类比Yarn中的节点资源管理器
@H_404_1@Executor:运算任务执行器,运行在worker节点上的一个进程。类似于MapReduce中的MapTask和ReduceTask
Spark基本执行流程
@H_404_1@以StandAlone运行模式为例:
@H_404_1@
@H_404_1@1. 客户端启动应用程序及Driver相关工作,向Master提交任务申请资源
@H_404_1@2. Master给Worker分配资源,通知worker启动executor
@H_404_1@3. Worker启动Executor,Worker创建ExecutorRunner线程,ExecutorRunner会启动ExecutorBackend进程,Executor和Driver进行通信(任务分发监听等)
@H_404_1@ 4. ExecutorBackend启动后向Driver的SchedulerBackend注册,SchedulerBackend将任务提交到Executor上运行5.所有Stage都完成后作业结束
笔者强调:
-
@H_404_1@Driver端进行的操作
-
@H_404_1@SparkContext构建DAG图
-
@H_404_1@TaskScheduler进行task下发
- @H_404_1@SchedulerBackend将任务提交到Executor上运行
-
@H_404_1@资源划分的一般规则
-
@H_404_1@Spark不同运行模式任务调度器是不同的,如Yarn模式:yarn-cluster模式为YarnClusterScheduler,yarn-client模式为YarnClientClusterScheduler
@H_404_1@关注微信公众号:大数据学习与分享,获取更对技术干货