Spark 部署模式
Spark支持3种集群管理器(Cluster Manager),分别为:
(1)Standalone:独立模式,Spark原生的简单集群管理器,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统,使用Standalone可以很方便地搭建一个集群;
(2)Hadoop YARN:统一的资源管理机制,在上面可以运行多套计算框架,如MR、Storm等。根据Driver在集群中的位置不同,分为yarn client和yarn cluster;
(3)Apache Mesos:一个强大的分布式资源管理框架,它允许多种不同的框架部署在其上,包括Yarn。
实际上,除了上述这些通用的集群管理器外,Spark内部也提供了方便用户测试和学习的简单集群部署模式。由于在实际工厂环境下使用的绝大多数的集群管理器是Hadoop YARN,因此我们关注的重点是Hadoop YARN模式下的Spark集群部署。
YARN模式运行机制
1 YARN Cluster模式
图3-1 YARN Cluster模式提交流程
(1)执行脚本提交任务,实际是启动一个SparkSubmit的JVM进程;
(2)SparkSubmit类中的main方法反射调用Client的main方法;
(3)Client创建Yarn客户端,然后向Yarn发送执行指令:bin/java ApplicationMaster;
(4)Yarn框架收到指令后会在指定的NM中启动ApplicationMaster;
(5)ApplicationMaster启动Driver线程,执行用户的作业;
(6)AM向RM注册,申请资源;
(7)获取资源后AM向NM发送指令:bin/java CoarseGrainedExecutorBacken;
(8)ExecutorBackend进程会接收消息,启动计算对象Executor并跟Driver通信,注册已经启动的Executor;
(9)Driver分配任务并监控任务的执行。
注意:SparkSubmit、ApplicationMaster和CoarseGrainedExecutorBacken是独立的进程;Client和Driver是独立的线程;Executor是一个对象。
想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习。
上一篇: 使用Maxwell实时同步MySQL数据到消息队列Kafka
下一篇: Flink进阶之使用布隆过滤器实现UV统计