初识 Spark - 7000字+15张图解,学习 Spark 入门基础知识

本文介绍了Spark的四大特性:简单、快速、可融合和统一,强调其在大数据处理中的高性能和易用性。文章详细讲解了Spark相较于MapReduce的优势,包括内存计算、丰富的API和高容错性。此外,还概述了Spark的生态圈,如Spark SQL、Streaming、MLlib等组件。最后,讨论了Spark的运行模式、集群架构以及作业运行的拆解,包括Job、Stage、Partition和Task等概念。
摘要由CSDN通过智能技术生成

欢迎关注「数人之道」公众号

获取更多数据知识、干货、资讯!

延伸阅读:

初识 Spark | 带你理解 Spark 中的核心抽象概念:RDDSpark RDD 的概念、操作、依赖关系https://mp.weixin.qq.com/s?__biz=MzkwNTI4MDEzOQ==&mid=2247485795&idx=1&sn=5ec304fde1d31f6e269d8ddcb07e8c1c&chksm=c0fb6687f78cef91bd2b81fb5602ecbf3b232f7872d5c539f98c797db5c1ea977f957332cd81&token=532517368&lang=zh_CN#rd

Spark 是 UC Berkeley AMP Lab 开源的通用分布式并行计算框架,目前已成为 Apache 软件基金会的顶级开源项目。

基于以下原因,Spark 已经成为数据行业从业者(尤其是大数据领域)绕不开的必学技术栈中的一员:

  • Spark 已经成为大数据领域中必备的计算引擎框架
  • Spark 已经基本替代了传统的 MapReduce 离线计算框架和 Storm 流式实时计算框架
  • Spark 正在数据科学、机器学习及 AI 等热门技术方向持续发力

下面对 Spark 的特性、对比 Hadoop 的优势、组成模块及运行原理等基础知识进行学习。

1.Spark 的特性

图1:Apache 官网描述的 Spark 特性

Apache 在改版后的 Spark 官网中用了四个单词描述 Spark 的特性:Simple. Fast. Scalable. Unified.

1.1.Simple(简单易用)

Spark 提供了丰富的高级运算操作,支持丰富的算子,并支持 Java、Python、Scala、R、SQL 等语言的 API,使用户可以快速构建不同的应用。

开发人员只需调用 Spark 封装好的 API 来实现即可,无需关注 Spark 的底层架构。

1.2.Fast(高效快速)

Spark 将处理的每个任务都构造成一个DAG(Directed Acyclic Graph, 有向无环图)来执行,实现原理是基于RDD(Resilient Distributed Dataset, 弹性分布式数据集)在内存中对数据进行迭代计算,以实现批量和流式数据的高性能快速计算处理。

之前的官方数据表明:如果计算数据是从磁盘中读取,Spark 计算速度是 MapReduce 的 10 倍以上;如果计算数据是从内存中读取,Spark 计算速度则是 MapReduce 的 100 倍以上。

目前的官网已经撤下这一数据,估计是统计的场景和数据存在偏颇,不够全面。但这也从侧面说明,Spark 拥有出色的计算性能已经是深入人心的不争事实,无需再用数据来佐证。

1.3.Scalable(可融合性)

Spark 可以非常方便地与其他的开源产品进行融合。比如:Spark 可以使用 Hadoop 的 YARN 和 Apache Mesos 作为它的资源管理和调度器;可以处理所有 Hadoop 支持的数据,包括 HDFS、HBase 和 Cassandra 等。

这对于已经部署 Hadoop 集群的用户特别重要,因为不需要做任何数据迁移就可以使用 Spark 强大的计算处理能力。

Spark 也可以不依赖于第三方的资源管理和调度器,它实现了 Standalone 作为其内置的资源管理和调度框架,这样进一步降低了 Spark 的使用门槛。

用户可以根据现有的大数据平台灵活地选择运行模式,使得所有人都可以非常容易地部署和使用 Spark。

Spark 还提供了在 EC2 上部署 Standalone 的 Spark 集群的工具。

此外,由于 Spark 是使用 Scala 这种函数式编程语言开发的,因此 Spark 也继承了 Scala 的可扩展性,可对类型数据结构、控制体结构等进行自定义的扩展。

1.4.Unified(统一通用)

大数据处理的传统方案需要维护多个平台,比如,离线任务是放在 Hadoop MapRedue 上运行,实时流计算任务是放在 Storm 上运行。

而Spark 提供了一站式的统一解决方案,可用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)等。这些不同类型的处理都可以在同一个应用中无缝组合使用。

Spark 统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物理成本。

2.Spark 的优势

这里说的 Spark 的优势,是对比 Hadoop 的 MapReduce 而言,因此,我们需要先看看 M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值