Spark RDD解密RDD提供了通用的框架 spark高手:解决BUG,调优、顶级高手拿源码修改适配自己领域业务 RDD基于工作集的应用抽象 MapReduce基于数据集 位置感知,容错 负载均衡 基于数据集的处理,从物理存储上加载数据,然后操作数据,然后写入物理存储设备 基于数据集的操作不适用的场景: RDD是基于工作集的,除了有基于数据集的优点外还增加了Resillient Distributed Dataset(弹性分布式数据集) Spark位置感知比Hadoop好很多,Hadoop在map后不管reduce在哪里了。Hadoop有一定感知的 数据分片可变:10万->1万,可以调用coalesce,不用repartition,因为repartition需要重新shuffle RDD是分布式函数式编程的抽象 Spark1.2.x之前shuffle机制有问题,所以当时不适合大规模数据计算。1.3开始有DataFrame RDD是lazy模式的,每次都会创建新的RDD并把之前的RDD迭代进来,直到遇到action时才触发计算 常规容错都有哪些方法: RDD通过数据更新的方式,为何高效呢? 如果要和mysql或hbase结合使用,可能要重写RDD。 所有RDD操作计算结果返回的都是迭代器,好处是所有框架无缝集成 this.type指向具体的子类可以调用子类的方法,Java中不可以。运行时把实际的实例赋值给RDD从而调用子类方法 例如:子框架,子框架可以直接调机器学习、图计算等等。同理机器学习也可以调用金融框架。 PreferedLocation ,数据不动代码动,Spark可以处理任何数据,完美符合数据本地性 实时事务性处理Spark依然不适用 RDD缺陷:不支持细粒度的更新(写)操作以及增量迭代计算 |
|
来自: 看风景D人 > 《Spark学习总结》