ITPub博客

首页 > 大数据 > Spark > 宝付:30分钟理解Spark的基本原理

宝付:30分钟理解Spark的基本原理

原创 Spark 作者:一流涌进 时间:2019-09-27 17:50:26 0 删除 编辑

1

Spark优势特点

作为大数据计算框架 MapReduce 的继任者,Spark 具备以下优势特性。

01

高效性

不同于 MapReduce 将中间计算结果放入磁盘中,Spark 采用内存存储中间计算结果,减少了迭代运算的磁盘 IO,并通过并行计算 DAG 图的优化,减少了不同任务之间的依赖,降低了延迟等待时间。内存计算下,Spark 比 MapReduce 快 100 倍。


02

易用性

不同于 MapReduce 仅支持 Map 和 Reduce 两种编程算子,Spark 提供了超过 80 种不同的 Transformation 和 Action 算子,如map, reduce, filter, groupByKey, sortByKey, foreach 等,并且采用函数式编程风格,实现相同的功能需要的代码量极大缩小。


03

通用性

Spark 提供了统一的解决方案。Spark 可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。

这些不同类型的处理都可以在同一个应用中无缝使用。这对于企业应用来说,就可使用一个平台来进行不同的工程实现,减少了人力开发和平台部署成本。

04

兼容性

Spark 能够跟很多开源工程兼容使用。如 Spark 可以使用 Hadoop 的 YARN 和 Apache Mesos 作为它的资源管理和调度器,并且 Spark 可以读取多种数据源,如 HDFS、HBase、MySQL 等。 02

Spark基本概念

RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。

DAG:是 Directed Acyclic Graph(有向无环图)的简称,反映 RDD 之间的依赖关系。

Driver Program:控制程序,负责为 Application 构建 DAG 图。

Cluster Manager:集群资源管理中心,负责分配计算资源。

Worker Node:工作节点,负责完成具体计算。

Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行 Task,并为应用程序存储数据。

Application:用户编写的 Spark 应用程序,一个 Application 包含多个 Job。

Job:作业,一个 Job 包含多个 RDD 及作用于相应 RDD 上的各种操作。

Stage:阶段,是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”。

Task:任务,运行在 Executor 上的工作单元,是 Executor 中的一个线程。

总结:Application 由多个 Job 组成,Job 由多个 Stage 组成,Stage 由多个 Task 组成。Stage 是作业调度的基本单位。

03

Spark架构设计

Spark 集群由 Driver, Cluster Manager(Standalone, Yarn 或 Mesos),以及 Worker Node 组成。对于每个 Spark 应用程序,Worker Node 上存在一个 Executor 进程,Executor 进程中包括多个 Task 线程。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69905323/viewspace-2658547/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-05-09

  • 博文量
    31
  • 访问量
    14033