微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark架构与运行流程

1. 为什么要引入Yarn和Spark

  答:普通OS(操作系统)的功能主要是为处理器管理、存储器管理、设备管理、文件管理、作业管理和用户接口。

在集群环境下,HDFS已经负责了文件管理,而设备概念较弱,故YARN主要负责统一管理集群内服务器的计算资源(主要包括cpu和内存资源)、作业调度和用户接口。

开发上我们选择local[2]模式
生产上跑任务Job,我们选择Spark On Yarn模式 ,

将Spark Application部署到yarn中,有如下优点:

1.部署Application和服务更加方便

只需要yarn服务,包括Spark,Storm在内的多种应用程序不要要自带服务,它们经由客户端提交后,由yarn提供的分布式缓存机制分发到各个计算节点上。

2.资源隔离机制

yarn只负责资源的管理和调度,完全由用户和自己决定在yarn集群上运行哪种服务和Applicatioin,所以在yarn上有可能同时运行多个同类的服务和Application。Yarn利用Cgroups实现资源的隔离,用户在开发新的服务或者Application时,不用担心资源隔离方面的问题。

3.资源弹性管理

Yarn可以通过队列的方式,管理同时运行在yarn集群种的多个服务,可根据不同类型的应用程序压力情况,调整对应的资源使用量,实现资源弹性管理

2. Spark已打造出结构一体化、功能多样化的大数据生态系统,请简述Spark生态系统。

答:Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成一套完整生态系统,既能够提供内存计算框架,也可以支持sql即席查询、实时流式计算、机器学习和图计算等。Spark可以部署在资源管理器YARN之上,提供一站式的大数据解决方案。因此,Spark所提供的生态系统同时支持批处理、交互式查询和流数据处理。

3. 用图文描述你所理解的Spark运行架构,运行流程。

 


 

Spark运行基本流程:

 

1为应用构建起基本的运行环境,即由Driver创建一个SparkContext进行资源的申请、任务的分配和监控
2资源管理器为Executor分配资源,并启动Executor进程
3SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理。
4Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行并提供应用程序代码
5Task在Executor上运行把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐