作业三

一、

 

 

 

 

Spark Core:

Spark核心组件,它实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集(Resilient Distributed Datasets,简称RDD)的API 定义,RDD是只读的分区记录的集合,只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建。

Spark SQL:

用来操作结构化数据的核心组件,通过Spark SQL可以直接查询Hive、HBase等多种外部数据源中的数据。Spark SQL的重要特点是能够统一处理关系表和RDD。在处理结构化数据时,开发人员无需编写MapReduce程序,直接使用SQL命令就能完成更加复杂的数据查询操作。

 

Spark Streaming:

Spark提供的流式计算框架,支持高吞吐量、可容错处理的实时流式数据处理,其核心原理是将流数据分解成一系列短小的批处理作业,每个短小的批处理作业都可以使用Spark Core进行快速处理。Spark Streaming支持多种数据源,例如Kafka、Flume以及TCP套接字等数据源。

MLlib:

Spark提供的关于机器学习功能的算法程序库,包括分类、回归、聚类、协同过滤算法等,还提供了模型评估、数据导入等额外的功能,开发人员只需了解一定的机器学习算法知识就能进行机器学习方面的开发,降低了学习成本。

GraphX:

Spark提供的分布式图处理框架,拥有对图计算和图挖掘算法的API接口以及丰富的功能和运算符,极大的方便了对分布式图处理的需求,能在海量数据上运行复杂的图算法。

独立调度器、Yarn、Mesos:

Spark框架可以高效地在一个到数千个节点之间伸缩计算,集群管理器则主要负责各个节点的资源管理工作,为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行,Hadoop Yarn、Apache Mesos以及Spark自带的独立调度器都被称为集群管理器。

二、

 Master, Worker;  RDD,DAG;

  Application, job,stage,task; driver,executor,Claster Manager

  DAGScheduler, TaskScheduler.

 

1. Master:Spark特有资源调度系统的 Leader,掌管着整个集群的资源信息,功能是监听Worker,管理 Worker、Application。

2. Worker:Spark 特有资源调度系统的 Slaver,功能是通过RegisterWorker 注册到 Master;定时发送心跳给 Master;根据 Master 发送的 Application 配置进程环境,并启动 ExecutorBackend。

3. RDD:RDD 是 Spark 对数据的核心抽象,其实就是分布式的元素集合。在 Spark 中,对数据的所有操作不外乎创建 RDD、转化已有RDD 以及调用 RDD 操作进行求值。而在这一切背后, Spark 会自动将 RDD 中的数据分发到集群上,并将操作并行化执行。

4. DAG:有向无环图,反映RDD之间的依赖关系。

5. Application:基于 Spark 构建的用户程序。

6. Job:由多个 task 组成的一个并行计算, 这些 task 产生自一个 Spark action (比如, savecollect) 操作。

7. Stage:每个 job 被分解为多个 stage, 每个 stage 其实就是一些 task 的集合, 这些 stage 之间相互依赖 (与 MapReduce 中的 map 与 reduce stage 类似),执行过程中,每碰到一个shuffle就是一个stage。

8. Task:发送到一个 executor 的一系列工作。

9. Driver:运行 application 的 main() 函数和创建 SparkContext 的进程。

10. Executor(执行器):执行器是一个进程(进程名: ExecutorBackend, 运行在 Worker 节点上),用来执行计算和为应用程序存储中间数据。

11. Cluster manager:获取集群资源的一个外部服务, 比如 standalone 管理器, Mesos 和 YARN。

12. DAGScheduler:根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler,其划分Stage的依据是RDD之间的依赖关系。

13. TaskScheduler:将TaskSet提交给Worker(集群)运行,每个Executor运行什么Task就是在此处分配的。

posted @ 2022-03-15 20:14  塞纳河没有冰期  阅读(191)  评论(0编辑  收藏  举报