Spark 集群作业提交与部署指南
1. Spark 分布式模式组件概述
在分布式模式下运行 Spark 涉及多个组件。在自包含应用模式中,所有组件都在单个 JVM 上运行。以下是运行 Scala 程序时各组件及其功能的简要说明:
- RDD 图处理 :使用 RDD 上的各种操作(如 map、filter、join 等)构建的 RDD 图会传递给有向无环图(DAG)调度器。
- DAG 调度器 :优化流程,将所有 RDD 操作转换为称为阶段(stages)的任务组。通常,洗牌(shuffle)前的所有任务会被包装到一个阶段中。例如,map 或 filter 操作,它们对每个输入产生一个输出,若 RDD 元素上先进行 map 再进行 filter,通常会将它们流水线化形成一个可由单个工作节点执行的任务,还能利用数据局部性优势。与传统 Hadoop MapReduce 相比,Spark 的血统图(lineage graph)优势明显,Hadoop 在每个阶段都会将数据写入磁盘。
- 任务调度器 :接收洗牌分离的阶段,将其拆分为任务并提交给集群管理器。Spark 自带一个简单的集群管理器,也可在流行的集群管理器(如 Mesos 和 YARN)上运行 Spark 应用。
- 多执行器支持 :使用 YARN/Mesos 时,可在同一工作节点上运行多个执行器。此外,YARN 和 Mesos 除了运行 Spark 作业,还能运行非 Spark 作业。在 Spark 独立集群中,Spark 1.4 之前,每个应用在每个工作节点上的执行器数量限制为
超级会员免费看
订阅专栏 解锁全文
871

被折叠的 条评论
为什么被折叠?



