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] 举报,一经查实,本站将立刻删除。