第14课:Spark RDD解密
以下为Spark RDD解密课程学习心得:
在介绍Spark RDD之前,先简单的说下Hadoop MapReduce,它是基于数据流的方式进行计算,从物理存储上加载数据,然后操作数据,
最后写入到物理存储设备上,这样的模式会产生大量的中间结果。
MapReduce不适合场景:1.不适合大量迭代计算场景,2.交互式查询(重点是:基于数据流的方式不能复用中间的计算结果)
而Spark RDD是基于工作集的方式,RDD名称叫:弹性式分布式数据集。
RDD的弹性式主要分为以下几点:
1.自动进行内存和磁盘数据的存储切换;
2.基于Lineage的高效容错;
3.Task如果失败会自动进行特定次数的重试;
4.Stage如果失败会自动进行特定次数的重试,而且只会计算失败的分片;
5.Checkpoint和persist的容错
6.数据调度弹性,和DAG、JobScheduler等无关
7.数据分片的高度弹性,可以手动设定分片的数量,设定分片函数:repartition默认进行 shuffle机制,可以选择coalesce函数进行分片设置
RDD是数据分片的集合,分布在集群上,每个分片的计算逻辑是一样的。
RDD常规容错方式:checkpoint和记录数据更新方式
RDD通过记录更新数据方式为何高效?
1.RDD集合是不可变的,计算是Lazy模式
2.RDD的更新是粗粒度操作,写操作可以是粗粒度也可以是细粒度模式
RDD的缺陷:1.不支持细粒度的更新操作;
2.不支持增量迭代计算;
备注:
资料来源于:DT_大数据梦工厂(IMF传奇行动绝密课程)-IMF
更多私密内容,请关注微信公众号:DT_Spark
如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上20:00开设的Spark永久免费公开课,地址YY房间号:68917580
Life is short,you need to Spark.
转载于:https://blog.51cto.com/18610086859/1771134
总结
以上是生活随笔为你收集整理的第14课:Spark RDD解密的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: svn 主干和分支项目代码更新与同步
- 下一篇: 线上使用zabbix报警脚本(含图片)