大数据处理引擎Spark介绍 | 青训营笔记

183 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第8天

第五节课「Spark 原理与实践」的内容主要包含 4 个方面:Spark 介绍、Spark Core 原理解析、Spark SQL 原理解析、业界挑战与实践。这篇文章为大数据处理引擎Spark介绍,包括 Spark 的特点、Spark 生态组件、Spark 运行架构和工作原理和 Spark 目前支持的集群管理器。

大数据处理引擎Spark介绍

Spark 的特点

  • 统一引擎,支持多种分布式场景
  • 多语言支持
  • 可读写丰富数据源
  • 丰富灵活的 API/算子
  • 支持 K8S/YARN/Mesos 资源调度

Spark 生态组件

  • Spark Core:Spark 核心组件,它实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。

  • Spark SQL:用来操作结构化数据的核心组件,通过 Spark SQL 可以直接查询 Hive、HBase 等多种外部数据源中的数据。

  • Spark Structured Streaming:Spark 提供的流式计算框架,支持高吞吐量、可容错处理的实时流式数据处理。

  • MLlib:Spark 提供的关于机器学习功能的算法程序库,包括分类、回归、聚类、协同过滤算法等,还提供了模型评估、数据导入等额外的功能。

  • GraphX:Spark 提供的分布式图处理框架,拥有对图计算和图挖掘算法的API接口以及丰富的功能和运算符。

  • 独立调度器、Yarn、Mesos、Kubernetes:Spark 框架可以高效地在一个到数千个节点之间伸缩计算,集群管理器则主要负责各个节点的资源管理工作,为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行。

Spark 运行架构和工作原理

  • Application(应用):Spark 上运行的应用。Application 中包含了一个驱动器(Driver)进程和集群上的多个执行器(Executor)进程。

  • Driver Program(驱动器):运行 main() 方法并创建 SparkContext 的进程。

  • Cluster Manager(集群管理器):用于在集群上申请资源的外部服务(如:独立部署的集群管理器、Mesos 或者 Yarn)。

  • Worker Node(工作节点):集群上运行应用程序代码的任意一个节点。

  • Executor(执行器):在集群工作节点上为某个应用启动的工作进程,该进程负责运行计算任务,并为应用程序存储数据。

  • Task(任务):执行器的工作单元。

  • Job(作业):一个并行计算作业,由一组任务(Task)组成,并由 Spark 的行动(Action)算子(如:save、collect)触发启动。

  • Stage(阶段):每个 Job 可以划分为更小的 Task 集合,每组任务被称为 Stage。

Spark 目前支持的集群管理器

  • Standalone :Spark 附带的简单集群管理器,可以轻松设置集群。
  • Hadoop YARN: Hadoop 2 和 3 中的资源管理器。
  • Kubernetes:用于自动部署、扩展和管理容器化应用程序的开源系统。

个人总结

了解了 Spark 的特点、Spark 生态组件、Spark 运行架构和工作原理和 Spark 目前支持的集群管理器。

参考