以下为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.