简介
基于DAG的任务调度执行机制,采用内存计算的方式,用于大规模数据处理的快速、通用引擎,尤其适用于迭代计算。
Spark具有运行模式多样的特点,可以独立部署在集群中,也可以运行在Hadoop集群中,可以部署在EC2云环境中。可以访问HDFS、Cassandra、HBase、Hive等多种数据源。
Spark生态主要包括Spark Core(数据处理引擎,也为其他组件提供基础数据处理组件)、Spark SQL(交互查询)、Spark Streaming(流数据处理)、MLLib和MLBase(机器学习)和GraphX(图计算)。
资源虚拟化管理(调度)方面可以使用Mesos或Yarn组件。详细的架构体系可查阅BDAS技术栈。
基本概念
RDD:弹性分布式数据集,分布式内存的抽象,提供一种调度受限的共享内存模型,;
DAG:有向无环图,反映 RDD间的依赖关系 (执行流程);
Executor:工作结点(WorkNode)上的进程,运行Task;
Application:用户编写的Spark程序;
Task:运行在Executor上的工作单元;
Job:一个Job包含多个RDD及作用于相应RDD上的操作;
Stage:Job的基本调度单位,一个Job可分为多组Task,每组Task就是一个Stage,或是TaskSet,代表一组关系的、相互之间没有Shuffle依赖关系的任务组成的任务集。