Spark 的核心概念
大多数应该都要有实际写过 Spark 程序和提交任务到 Spark 集群后才有更好的理解
1、Application:表示你的应用程序,包含一个 Driver Program 和若干 Executor
2、Driver Program:Spark 中的 Driver 即运行上述 Application 的 main()函数并且创建 SparkContext,其中创建 SparkContext 的目的是为了准备 Spark 应用程序的运行环境。由 SparkContext 负责与 ClusterManager 通信,进行资源的申请,任务的分配和监控等。程序执 行完毕后关闭 SparkContext
3、ClusterManager:在 Standalone 模式中即为 Master(主节点),控制整个集群,监控 Worker。 在 YARN 模式中为资源管理器。
4、SparkContext:整个应用的上下文,控制应用程序的生命周期,负责调度各个运算资源, 协调各个 Worker 上的 Executor。初始化的时候,会初始化 DAGScheduler 和 TaskScheduler 两个核心组件。
5、RDD:Spark 的基本计算单元,一组 RDD 可形成执行的有向无环图 RDD Graph。
6、DAGScheduler:根据 Job 构建基于 Stage 的 DAG,并提交 Stage 给 TaskScheduler,其划分 Stage 的依据是 RDD 之间的依赖关系:宽依赖,也叫 shuffle 依赖
7、TaskScheduler:将 TaskSet 提交给 Workerÿ