Spark专有名词
《Spark大数据开发与应用案例(视频教学版)(大数据技术丛书)》(段海涛,杨忠良,余辉)【摘要 书评 试读】- 京东图书
1. Cluster Manager(集群管理器)
在集群上获取资源的拓展服务,Spark主要支持三种类型:Standalone(Spark自带的集群管理模式)、Mesos(Apache Mesos是一个集群管理器,用于在分布式环境中运行应用程序)、Yarn(Hadoop YARN是Hadoop 2.x中的资源管理系统)。
2. Master(主节点)
在Spark的Standalone集群管理模式中,Master是一个关键的组件,它负责接收来自客户端的Spark作业请求,管理集群中的Worker节点,以及进行资源分配和作业调度。
3. Worker(工作节点)
集群中任何可以运行Spark应用程序的节点。在Standalone模式中,Worker节点使用Spark的conf目录下的Slave文件来配置;在Spark on yarn模式中,Worker节点对应的是Nodemanager节点。
4. SparkSubmit(Spark任务提交)
SparkSubmit是Spark提供的一个命令行工具,用于提交Spark应用程序到集群上运行。通过SparkSubmit,用户可以指定应用程序的主类、依赖的jar包、运行模式(如Standalone、Yarn等)以及各种配置参数。
5. Application(应用程序,或者称为应用)
用户编写的Spark代码,包含运行在Driver端的代码和运行在各个节点上的Executor代码。
6. Job(作业)
由Spark的Action操作触发,包含多个RDD及作用于RDD上的各种操作。一个Job由多个Stage组成,每个Stage包含多个Task。
7. Driver(驱动程序)
运行用户程序的main()函数,并创建SparkContext,它是Spark程序的入口点。Driver负责初始化Spark应用程序的运行环境,与Cluster Manager进行通信,进行资源的申请、任务的分配和监控等。
8. SparkContext(Spark上下文)
Spark应用程序的上下文,控制应用程序的生命周期。它负责与Cluster Manager进行通信,进行资源的申请、任务的分配和监控等。
9. Executor(执行器)
在工作节点上为Spark应用程序所启动的一个进程,负责运行任务,并可以在内存或磁盘中保存数据。每个应用都有属于自己的独立的一批Executor。
10. Task(任务)
被送到某个Executor上的工作单元,是运行Spark应用的基本单元。
11. TaskSet(任务集合)
TaskSet是Spark中的一个概念,它代表了一个Stage中所有任务的集合。每个TaskSet中的任务是并行执行的,每个任务对应着RDD中的一个分区的数据处理。
12. TaskScheduler(任务调度器)
接收DAGScheduler提交过来的TaskSet,然后把一个个Task提交到Worker节点运行,每个Executor运行什么Task也是在此处分配的。
13. DAG(Directed Acyclic Graph,有向无环图)
在Spark中,DAG是用来表示Spark作业执行计划的一个重要数据结构。DAG中的节点代表RDD(Resilient Distributed Dataset,弹性分布式数据集)的转换操作(如map、filter、reduce等),DAG中,边是连接节点的线条,用于表示节点之间的关系。这些关系通常指的是任务之间的依赖关系或执行顺序。
14. DAGScheduler(有向无环图调度器)
负责接收Spark应用提交的Job,根据RDD的依赖关系划分Stage,并提交Stage给TaskScheduler。
15. Stage(阶段)
Stage是DAGScheduler根据RDD之间的依赖关系(宽依赖或窄依赖)对Job进行阶段划分的结果。一个Stage包含多个Task,这些Task会在Executor上并行执行。
16. RDD(弹性分布式数据集)
Spark的编程模型,是已被分区、被序列化、不可变、有容错机制的,并且能够并行操作的数据集合。RDD是Spark中数据的基本抽象,所有对数据的操作都是基于RDD进行的。
17. Narrow Dependency(窄依赖)
窄依赖指父RDD的一个分区会被子RDD的一个分区依赖。窄依赖允许RDD的分区在多个不同的任务之间并行计算。
18. Wide Dependency(宽依赖)
宽依赖指父RDD的一个分区会被子RDD的多个分区所依赖。宽依赖通常会导致shuffle操作,需要将数据重新分布到集群中的不同节点上。

