3.Spark设计与运行原理,基本操作

1.Spark已打造出结构一体化、功能多样化的大数据生态系统,请用图文阐述Spark生态系统的组成及各组件的功能。

Spark Core:核心组件,分布式计算引擎。其实现了Spark的作业调度、内存管理、容错、与存储系统交互等基本功能,并针对弹性分布式数据集(RDD)提供了丰富的操作。

Spark SQL:开发人员可以轻松地使用SQL命令进行查询,并进行更复杂的数据分析,部分用法与Hive非常类似。

Spark Streaming:基于 Spark Core实现的高吞吐量、具备容错机制的准实时流处理系统。将流式计算分解成一系列小批处理作业,也称微批处理。

Spark Mlib:构建在Spark上的分布式机器学习库。

Graphx:Spark中分布式图处理框架,支持图并行计算。

 

2.请详细阐述Spark的几个主要概念及相互关系:

  Master, Worker;  RDD,DAG; Application, job,stage,task; driver,executor,Claster Manager

  SparkContext,  DAGScheduler, TaskScheduler.

Master是spark中资源调度系统的Leader,管理整个集群的资源信息

Worker是spark中资源调度系统的slave,管理所在结点的资源信息

master节点常驻master守护进程,负责管理worker节点,我们从master节点提交应用。  worker节点常驻worker守护进程,与master节点通信,并且管理executor进程。

RDD: Resillient Distributed Dataset(弹性分布式数据集),是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。

DAG: Directed Acyclic Graph(有向无环图),反映RDD之间的依赖关系。

Application应用:用户编写的Spark应用程序。

Job作业:一个作业包含多个RDD及作用于相应RDD上的各种操作。

Stage阶段:是作业的基本调度单位,每个作业会因为RDD之间的依赖关系拆分成多组任务集合TaskSet,称为调度阶段。调度阶段的划分是由DAGScheduler来划分的,有Shuffle Map Stage和Result Stage两种。

Task任务:分发到Executor上的工作任务,是spark实际执行应用的最小单元。

DAGSchedule:_面向调度阶段的任务调度器,负责接收spark应用提交的作业,根据RDD的依赖关系划分调度阶段,并提交调度阶段给TaskScheduler。

TaskScheduler:面向任务的调度器,它接受DAGScheduler提交过来的调度阶段,然后把任务分发到work节点运行,由Worker节点的Executor来运行该任务

TaskScheduler:面向任务的调度器,它接受DAGScheduler提交过来的调度阶段,然后把任务分发到work节点运行,由Worker节点的Executor来运行该任务

Driver:提交了应用之后,便会启动一个对应的driver进程。

driver 进程就是应用的 main()函数,并且构建SparkContext对象。向Manger申请应用所需的资源,启动Executor,向Executor发送代码和文件。

ClusterManager:集群资源管理器,自带的或Mesos或YARN,负责申请和管理在Worker Node上运行应用所需的资源。

Executor:进程宿主在 worker 节点上,一个 worker可以有多个executor ,负责运行任务Task。每个executor持有一个线程池,每个线程可以执行一个 task,并将结果返回给Driver 。块管理器Block Manager,为RDD提供内存存储(内存+磁盘)。

SparkContext:sc, DriverApplication的执行与输出,隐藏了网络通信、分布式部署、消息通信、存储能力、计算能力、缓存、文件服务、web服务等内容,应用开发者只需要使用SparkContext提供的API完成功能开发。SparkContext内置的DAGScheduler负责创健Job,将DAG中的RDD划分到不同的Stage,提交Stage等功能,内置的TaskScheduler负责资源的申请,任务的提交及请求集群对任务的调度等工作。

 

3.在PySparkShell尝试以下代码,观察执行结果,理解sc,RDD,DAG。请画出相应的RDD转换关系图。

 

 

 

 

 

 

 

 

 

posted @ 2022-03-15 16:08  sunny_LF  阅读(33)  评论(0编辑  收藏  举报