Spark超全总结文档目录如下

Spark涉及的知识点如下图所示,本文将逐一讲解:

本文档参考了关于 Spark 的众多资料整理而成,为了整洁的排版及舒适的阅读,对于模糊不清晰的图片及黑白图片进行重新绘制成了高清彩图

本文超长,获取本文完整PDF文档,带目录超全总结,请扫码关注公众号【五分钟学大数据】,后台发送:spark pdf,即可下载带目录的完整版spark文档:

正文开始:

一、Spark 基础

1. 激动人心的 Spark 发展史

大数据、人工智能( Artificial Intelligence )像当年的石油、电力一样, 正以前所未有的广度和深度影响所有的行业, 现在及未来公司的核心壁垒是数据, 核心竞争力来自基于大数据的人工智能的竞争。

Spark 是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一。

2009 年诞生于美国加州大学伯克利分校 AMP 实验室
2010 年通过 BSD 许可协议开源发布;
2013 年捐赠给 Apache 软件基金会并切换开源协议到切换许可协议至 Apache2.0;
2014 年 2 月,Spark 成为 Apache 的顶级项目
2014 年 11 月, Spark 的母公司 Databricks 团队使用 Spark 刷新数据排序世界记录。

Spark 成功构建起了一体化、多元化的大数据处理体系。在任何规模的数据计算中, Spark 在性能和扩展性上都更具优势。

  1. Hadoop 之父 Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的 MapReduce 引擎的使用将下降,由 Apache Spark 取代)。

  2. Hadoop 商业发行版本的市场领导者 Cloudera 、HortonWorks 、MapR 纷纷转投 Spark,并把 Spark 作为大数据解决方案的首选和核心计算引擎。

2014 年的 Benchmark 测试中, Spark 秒杀 Hadoop ,在使用十分之一计算资源的情况下,相同数据的排序上, Spark 比 MapReduce 快 3 倍!在没有官方 PB 排序对比的情况下,首次将 Spark 推到了 IPB 数据(十万亿条记录) 的排序,在使用 190 个节点的情况下,工作负载在 4 小时内完成, 同样远超雅虎之前使用 3800 台主机耗时 16 个小时的记录。

在 FullStack 理想的指引下,Spark 中的 Spark SQL 、SparkStreaming 、MLLib 、GraphX 、R 五大子框架和库之间可以无缝地共享数据和操作, 这不仅打造了 Spark 在当今大数据计算领域其他计算框架都无可匹敌的优势, 而且使得 Spark 正在加速成为大数据处理中心首选通用计算平台。

2. Spark 为什么会流行

  • 原因 1:优秀的数据模型和丰富计算抽象

Spark 产生之前,已经有 MapReduce 这类非常成熟的计算系统存在了,并提供了高层次的 API(map/reduce),把计算运行在集群中并提供容错能力,从而实现分布式计算。

虽然 MapReduce 提供了对数据访问和计算的抽象,但是对于数据的复用就是简单的将中间数据写到一个稳定的文件系统中(例如 HDFS),所以会产生数据的复制备份,磁盘的 I/O 以及数据的序列化,所以在遇到需要在多个计算之间复用中间结果的操作时效率就会非常的低。而这类操作是非常常见的,例如迭代式计算,交互式数据挖掘,图计算等。

认识到这个问题后,学术界的 AMPLab 提出了一个新的模型,叫做 RDD。RDD 是一个可以容错且并行的数据结构(其实可以理解成分布式的集合,操作起来和操作本地集合一样简单),它可以让用户显式的将中间结果数据集保存在内存中,并且通过控制数据集的分区来达到数据存放处理最优化.同时 RDD 也提供了丰富的 API (map、reduce、filter、foreach、redeceByKey...)来操作数据集。后来 RDD 被 AMPLab 在一个叫做 Spark 的框架中提供并开源。

简而言之,Spark 借鉴了 MapReduce 思想发展而来,保留了其分布式并行计算的优点并改进了其明显的缺陷。让中间数据存储在内存中提高了运行速度、并提供丰富的操作数据的 API 提高了开发速度。

  • 原因 2:完善的生态圈-fullstack

    目前,Spark 已经发展成为一个包含多个子项目的集合,其中包含 SparkSQL、Spark Streaming、GraphX、MLlib 等子项目。

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

Spark SQL:Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 操作数据。

Spark Streaming:Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。

Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

GraphX(图计算):Spark 中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。

Structured Streaming:处理结构化流,统一了离线和实时的 API。

3. Spark VS Hadoop

Hadoop Spark
类型 分布式基础平台, 包含计算, 存储, 调度 分布式计算工具
场景 大规模数据集上的批处理 迭代计算, 交互式计算, 流计算
价格 对机器要求低, 便宜 对内存有要求, 相对较贵
编程范式 Map+Reduce, API 较为底层, 算法适应性差 RDD 组成 DAG 有向无环图, API 较为顶层, 方便使用
数据存储结构 MapReduce 中间计算结果存在 HDFS 磁盘上, 延迟大 RDD 中间运算结果存在内存中 , 延迟小
运行方式 Task 以进程方式维护, 任务启动慢 Task 以线程方式维护, 任务启动快

五万字 | Spark吐血整理,学习与面试收藏这篇就够了!相关推荐

  1. 学习 HTML+CSS 这一篇就够了

    文章目录 学习 HTML+CSS 这一篇就够了 ! HTML 简介 一.网页 1 .什么是网页 2. 什么是 HTML 3.网页的形成 4.网页总结 二.浏览器 1. 常用浏览器 2.浏览器内核 三. ...

  2. 不用找了,学习BM算法,这篇就够了(思路+详注代码)

    写在前面 在计算机科学里,Boyer-Moore字符串搜索算法是一种非常高效的字符串搜索算法.它由Bob Boyer和J Strother Moore设计于1977年.此算法仅对搜索目标字符串(关键字 ...

  3. Flink保姆级教程,超全五万字,学习与面试收藏这一篇就够了

    本文目录: 一.Flink简介 二.Flink 部署及启动 三.Flink 运行架构 四.Flink 算子大全 五.流处理中的 Time 与 Window 六.Flink 状态管理 七.Flink 容 ...

  4. 【吐血整理】(面试大全)网络安全,渗透测试,安全服务工程师面试题

    欢迎关注我的微信公众号:安全攻防渗透 信息安全领域原创公号,专注信安领域人才培养和知识分享,致力于帮助叁年以下信安从业者的学习和成长. 前言 这次花了大把精力一边学习一边整理网络安全服务职位(包括但不 ...

  5. spring cloud Netflix全套面试,这一篇就够了,3万字整理

    *spring cloud Netflix* 面试:springcloud https://blog.csdn.net/weixin_46577306/article/details/10690608 ...

  6. Flink框架吐血总结,学习与面试收藏这一篇就够了,大数据必备知识体系

    文章目录 Flink Flink 核心特点 Flink 应用 核心抽象 环境对象 数据流元素 Flink 异步IO 数据分区 窗口 实现原理 Watermark (水印) 内存管理 自主内存管理 内存 ...

  7. 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了

    本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...

  8. 精心整理全网最全Tomcat面试专题及答案(共19题,含答案解析),tomcat面试看这篇就够了!

    [Java架构师面试网]收集整理了一些Java面试的常见问题,这些问题可能会在你下一次技术面试中遇到.想成为Java架构师,这些都是不可避免也是必须要掌握的哦,对于其他模块的面试题,我后续也将单独分享 ...

  9. 强化学习(Reinforcement Learning)中的Q-Learning、DQN,面试看这篇就够了!

    文章目录 1. 什么是强化学习 2. 强化学习模型 2.1 打折的未来奖励 2.2 Q-Learning算法 2.3 Deep Q Learning(DQN) 2.3.1 神经网络的作用 2.3.2 ...

最新文章

  1. ODBC更新记录集提示”记录集为只读“
  2. c# typeof() 和 GetType()的区别
  3. update 两个表关联_你真的了解全量表,增量表及拉链表吗?
  4. php内核分析-fpm和df的问题思考
  5. iphone照片删掉又出现_两个月前删的IPhone手机照片还有救?很简单,三招帮你轻松恢复...
  6. Linux系统下解压缩安装MongoDB
  7. stm32 HSE HSI
  8. C# USB视频人脸检测
  9. 李开复发布新书《AI未来》,答技术大变革下的生存法则,LeCun纳德拉推荐
  10. 思科精睿系列交换机被曝高危漏洞,仅修复部分产品
  11. 基于nodejs的开源博客
  12. 正则表达式匹配非负数字
  13. 渗透测试技术----服务扫描(一)--Banner、服务版本扫描、操作系统识别
  14. 程序员叫啥名字_什么是资深程序员?看自“配”的网名就真相了!
  15. 【转】统一μITRON,日本成立开放源码ITRON团体
  16. 【Excel】Excel学习笔记 -- 通配符的使用与定位条件
  17. Ivanti的垃圾软件landesk
  18. API理解清晰(转载)
  19. 项目:数据库表的梳理
  20. ZOJ3716 Ribbon Gymnastics(贪心)

热门文章

  1. 计算机社团实施活动方案,计算机社团活动方案
  2. nginx配置解析流程
  3. 能在Switch 中使用 String 吗?
  4. SAP中后勤发票校验不显示关联会计凭证号如何解决?
  5. 7.SpringSecurity中的权限管理
  6. 三校生计算机模拟试题1,三校生高考计算机模拟试卷一
  7. linux php ldap 安装配置,linux下 ldap安装及使用
  8. C# OleDbConnection对特定部分Excel的数据读取
  9. CreateFile WriteFile ReadFile FlushFileBuffers的基本用法
  10. 项目分享 | MindSpore Insight AI可视化工具开发心得