Spark架构与运行流程

1. 阐述Hadoop生态系统中,HDFS, MapReduce, Yarn, Hbase及Spark的相互关系,为什么要引入Yarn和Spark。

 

HDFS 作为Hadoop生态系统在最底层,用于实现文件存储,提供海量数据存储,是MapReduce, Yarn, Hbase及Spark的基础;

MapReduce 作为Hadoop生态系统在核心功能之一,用于分布式计算,提供海量数据计算,是一种计算框架,需要用到HDFS在数据。

Spark 可以是一种独立生态系统,也可以是一种计算框架在Hadoop平台上运行,以Yarn为资源调度器。

Yarn 作为Hadoop生态系统在核心功能之一,用于实现资源在调度,调度如MapReduce、Spark等计算框架所需资源。

因为Spark的功能实现速度较比MapReduce快在多,Yarn作为调度器可以实现多个计算机框架在使用,两者都可以大大提升大数据处理效率。

 

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

 

Spark Core 是整个BDAS 生态系统的核心组件,是一个分布式大数据处理框架。

Spark Streaming 是一个对实时数据流进行高吞吐、高容错的流式处理系统,可以处理流数据。

Spark SQL 的前身是Shark,Shark 即Hive on Spark即数据查询及调用语言。

MLlib:是Spark 实现一些常见的机器学习算法和实用程序。

GraphX 是一个分布式图计算框架项目,用于图数据处理。

 

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

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

posted @ 2021-03-12 16:00  starrysky~ocean  阅读(73)  评论(0编辑  收藏  举报