大数据经典论文解读
徐文浩
bothub 创始人
13844 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 59 讲
大数据经典论文解读
15
15
1.0x
00:00/00:00
登录|注册

18 | Spark:别忘了内存比磁盘快多少

你好,我是徐文浩。
过去几讲里,无论是 Hive 这样基于 MapReduce 的系统,还是 Dremel 这样抛开 MapReduce 的系统,其实都已经反映了 MapReduce 这个大数据处理的计算模型,在 2010 年这个时间节点已经有一些“落后”了。来自 Facebook 的 Hive 选择了在 MapReduce 上优化改良,仍然基于 MapReduce 的模型。而 Google 自家的 Dremel 则是另起炉灶,用一个新的底层架构来支持 OLAP 的数据分析。
不过,在工业界之外,学术界一样不会在整个大数据飞速发展的时代里缺席。2010 年,来自 Berkeley 的博士生Matei Zaharia发表了一篇论文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing》。伴随着这篇论文的,是一个开源系统,也就是 Spark。在之后的几年里,Spark 不仅逐步侵蚀了 Hadoop 的市场份额,成为大数据分析的第一选择,也在实时数据处理,以及大规模机器学习里占据了重要的地位。
Spark 的计算模型,其实可以看作一个是支持多轮迭代的 MapReduce 模型。不过它在实现层面,又和稍显笨拙的 MapReduce 完全不同。通过引入 RDD 这样一个函数式对象的数据集的概念,Spark 在多轮的数据迭代里,不需要像 MapReduce 一样反反复复地读写硬盘,大大提升了处理数据的性能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Spark通过引入RDD的概念,充分利用内存来优化大规模数据处理,避免了频繁读写硬盘的性能瓶颈。相比MapReduce的简单设计,Spark的系统设计并不复杂,却在大数据分析和机器学习领域取得了巨大成功。文章指出,Spark通过利用内存来避免数据重复读取的问题,提升了数据处理性能和效率。RDD的设计充分体现了“弹性”+“分布式”+“数据集”的特点,实现了惰性求值和类似数据库视图的功能。通过具体示例,文章展示了Spark在分布式逻辑回归等任务中的应用,以及RDD的优势所在。整体而言,Spark通过简洁而精妙的设计,充分利用内存的优势,提升了大数据处理的性能和效率。 Spark的RDD设计思想并不复杂,源自函数式编程,记录了输入数据和对应的计算输入数据的函数,解决了容错问题。RDD的弹性体现在数据存储上,支持内存缓存和多种持久化方式,以及选择性地将数据输出到硬盘上。此外,Spark通过优化宽依赖关系和检查点,实现了对数据计算的中间结果的持久化存储,平衡了性能和容错需求。相较于MapReduce,Spark在多轮迭代算法中的性能提升明显,成为大数据分析和机器学习领域的主流工具。 在思考题中,文章提到了自定义RDD分区对存储优化的作用,例如对两个需要Join操作的数据集进行相同的哈希分区。这种做法有助于提高数据处理效率,减少数据传输和计算成本,从而优化存储和应用层面的性能。 总的来说,Spark通过其灵活的RDD设计和内存优化,以及对宽依赖关系和检查点的优化,实现了在大数据处理中性能和容错的平衡,成为了大数据分析和机器学习领域的主流工具。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据经典论文解读》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • Lebron
    我对思考题的回答是两个输入数据源进行Join两边的数据采用相同的分区方式相比于不同的分区方式,可将宽依赖转为窄依赖。
    2021-12-26
    11
  • 纳兰残德
    按照这个描述感觉和tez比 差异不大
    2021-11-18
    2
  • CRT
    相同的哈希分区可以变宽依赖为窄依赖,具体应用为分桶表
    2021-11-17
    1
  • 何进财
    回答思考题,相同的哈希分区可以避免大量的数据经过网络传输。
    2021-11-10
    1
  • Eternal
    还是要拥抱开源,封闭后脑子太死板了
    2023-03-23归属地:重庆
  • Geek_f1c6e5
    回答文章末尾问题,优化的是shuffle磁盘读写和文件数量。作者论文也和MPP架构计算引擎做了对比,spark确实会慢,但优势血缘和cp,所以要稳定,这也造就了使用场景的区别,究竟业内如何区别使用?我也卖个关子
    2022-09-06归属地:上海
  • 火云邪神霸绝天下
    这哥们怎么想出来的?因为和工业界联系多?
    2022-04-22
  • 核桃
    spark的内容其实并没有那么简单,现在使用的spark优化了很多东西,包括RDD的算子方面,这里提供了很多灵活的高度算法,同时还有spark stream和spark mllib的出现,spark算是同时具备流式和批处理两者的结合,这几年很火的flink也大有说取代spark的趋势~
    2022-02-22
    2
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部