热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本地提交spark_Spark的提交方式有哪些?有什么区别?

spark的提交方式总体来说有两种,分别是standalone模式和yarn模式。这两种模式又分别有两种提交方式,分别是:standalo

spark的提交方式总体来说有两种,分别是standalone模式和yarn模式。

这两种模式又分别有两种提交方式,分别是:standalone下的client提交方式。(客户端提交)

standalone下的cluster提交方式。(集群提交)

yarn下的client提交方式。(客户端提交)

yarn下的cluster提交方式。(集群提交)

下面分别来说说这几种提交方式。

Standalone模式下的两种提交方式:

1、standalone-client任务提交方式

执行流程:

1、client模式提交任务后,会在客户端启动Driver。

2、Driver与Master通信,为当前的Application申请资源。

3、资源申请成功。Driver将Task发送到Worker执行。

4、Worker将Task执行情况和执行结果返回给Driver端。

总结:

Standalone-client适合测试使用,不适合生产使用。

Driver进程是在客户端启动的,这里的客户端是指提交任务的那个节点。Driver端可以看到Task执行的情况。

Standalone-client为什么不适合生产环境呢?是因为假如要提交100个Application到集群运行,Driver每次都会在client端启动,会导致客户端100次网卡流量暴增的问题。

2、Standalone-cluster模式提交任务:

执行流程:

1、cluster模式下提交应用程序后,会向Master申请启动Driver。

2、Master接受请求后,随机在一台Worker启动Driver。

3、Driver启动后,向Master申请资源。

4、资源申请成功后,Driver将Task发送到Worker执行。

5、Worker将执行情况和执行结果返回给Driver端。

总结:

Driver进程是在集群中某一台Worker上执行的,客户端无法查看Task执行情况。假如要提交100个应用程序到集群上,每次Driver会随机在集群中某台Worker上执行。

总结Standalone两种方式提交任务,Driver与集群通信包括:

1、申请资源。

2、分发任务。

3、回收结果。

4、监控Task执行情况。

Yarn模式下的两种提交方式:

1、Yarn-clien方式提交任务:

执行流程:

1、客户端提交了一个Application,在客户端启动了一个Driver。

2、应用程序启动后会向ResourceManager(RS)发送请求,请求启动一个ApplicationMaster(AM)资源。

3、RS收到请求,随机在一台NM(NodeManager)启动AM,这里的NM相当于Standalone的Worker节点。

4、AM启动后,会向RS申请一批资源,用于启动Executor。

5、RS收到请求,向AM返回一批NM节点。

6、AM会向NM发送命令启动Executor。

7、Executor启动后会反向注册给Driver,Driver发送Task到Executor执行,并监控执行情况和结果。

总结:

与Standalone-client类似,Yarn-client同样适用于测试环境,因为Driver运行在本地,大量提交Application会导致网卡流量激增问题。

client模式下ApplicationMaster的作用(注意,client模式的AM和cluster的AM作用不同):

1、为Application申请资源。

2、给NM发送消息启动Executor。

注意,这里的AM只用申请资源的功能,没用任务调度的功能。

Yarn-cluster任务提交方式:

执行流程:

1、客户端提交了Application,发送请求到RS,请求启动一个AM。

2、AM收到请求,在集群中随便找个节点启动AM(相当于Driver端)。

3、AM启动后,向RS申请一批资源,用于启动Executor。

4、RS收到请求,向AM返回一批NM节点,用来启动Executor。

5、AM连接到NM,发送命令启动Executor。

6、Executor反向注册到AM所在节点的Driver,Driver发送Task到Executor。

总结:

cluster方式提交任务后,Driver(AM)是分布到集群各个节点的,不会造成网卡流量激增的问题。缺点是任务提交后无法查看日志,只能通过Yarn查看日志。

ApplicationMaster作用:

1、申请资源。

2、给NM发消息启动Executor。

3、任务调度。



推荐阅读
  • 工作原理_一文理解 Spark 基础概念及工作原理
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了一文理解Spark基础概念及工作原理相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Hadoop + Spark安装(三) —— 调hadoop
    ***************************测试hadoop及问题跟进***************************执行以下语句报错datahadoop-2.9. ... [详细]
  • 在本地环境中部署了两个不同版本的 Flink 集群,分别为 1.9.1 和 1.9.2。近期在尝试启动 1.9.1 版本的 Flink 任务时,遇到了 TaskExecutor 启动失败的问题。尽管 TaskManager 日志显示正常,但任务仍无法成功启动。经过详细分析,发现该问题是由 Kafka 版本不兼容引起的。通过调整 Kafka 客户端配置并升级相关依赖,最终成功解决了这一故障。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在CICS应用环境中,众多客户端通过网络与CICS服务器进行连接。系统管理员可以通过CICS系统交易CEMT查询当前连接的客户端信息。然而,在非客户端模式下,识别用户连接并解决信息获取错误的问题变得更为复杂。本文将探讨如何在CICS服务器端准确识别非客户端模式的用户连接,并提供有效的解决方案,以确保系统的稳定性和数据的准确性。此外,还将介绍一些常用的诊断工具和技术,帮助管理员快速定位和解决问题。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 深入解析Spring Boot源码的序章
    本系列文章旨在深入解析Spring Boot的源代码,分享笔者在学习过程中的心得与体会。内容涵盖核心源码分析,可能会对初学者造成一定理解难度,建议读者结合笔者提供的详细注释进行阅读,以获得更好的学习体验。 ... [详细]
  • SparkMLlib提供了一些基本的统计学的算法,下面主要说明一下:1、Summarystatistics对于RDD[Vector]类型,SparkMLlib提供了colStats ... [详细]
  • 【clienteclipse集群提交运行】:客户端eclipse集群提交mapreduce代码1.需求:在master:8088上,有客户 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 系统数据实体验证异常:多个实体验证失败的错误处理与分析
    在使用MVC和EF框架进行数据保存时,遇到了 `System.Data.Entity.Validation.DbEntityValidationException` 错误,表明存在一个或多个实体验证失败的情况。本文详细分析了该错误的成因,并提出了有效的处理方法,包括检查实体属性的约束条件、调试日志的使用以及优化数据验证逻辑,以确保数据的一致性和完整性。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 深入解析Android GPS机制:第五部分 ... [详细]
author-avatar
我叫叮当既小号
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有