《Spark大数据分析:核心概念、技术及实践》一3.2 总体架构

本节书摘来自华章出版社《Spark大数据分析:核心概念、技术及实践》一书中的第3章,第3.2节,作者[美] *·古勒(Mohammed Guller),更多章节内容可以访问云栖社区“华章计算机”公众号查看。



3.2 总体架构

一个Spark应用包括5个重要部分:驱动程序、集群管理员、worker、执行者、任务(见图3-1)。

《Spark大数据分析:核心概念、技术及实践》一3.2 总体架构

3.2.1 worker

worker为Spark应用提供CPU、内存和存储资源。worker把Spark应用当成分布式进程在集群节点上执行。

3.2.2 集群管理员

Spark使用集群管理员来获得执行作业所需要的集群资源。顾名思义,集群管理员管理集群中worker节点的计算资源。它能跨应用从底层调度集群资源。它可以让多个应用分享集群资源并且运行在同一个worker节点上。

Spark目前支持三种集群管理员:单独模式、Mesos模式、YARN模式。Mesos模式和YARN模式都允许在同一个worker节点上同时运行Spark应用和Hadoop应用。第10章将详细介绍集群管理员。

3.2.3 驱动程序

驱动程序是一个把Spark当成库使用的应用。它提供数据处理的代码,Spark将在worker节点上执行这些代码。一个驱动程序可以在Spark集群上启动一个或多个作业。

3.2.4 执行者

执行者是一个JVM进程,对于一个应用由Spark在每一个worker上创建。它可以多线程的方式并发执行应用代码。它也可以把数据缓存在内存或硬盘中。

执行者的生命周期和创建它的应用一样。一旦Spark应用结束,那么为它创建的执行者也将寿终正寝。

3.2.5 任务

任务是Spark发送给执行者的最小工作单元。它运行在worker节点上执行者的一个线程中。每一个任务都执行一些计算,然后将结果返回给驱动程序,或者分区以用于shuffle操作。

Spark为每一个数据分区创建一个任务。一个执行者可以并发执行一个或多个任务。任务数量由分区的数量决定。更多的分区意味着将有更多的任务并行处理数据。

上一篇:Java基础 比较器


下一篇:不使用SDK自带库,使用基本Java语言实现将传入的数组内容反转