总结:目前数据流预算对两种应用的处理并不高效,一种是:迭代式运算,这在图运算和机器学习中应用很是常见。另外一种是:交互式数据挖掘工具。这两种状况下,数据存储在内存中运算的速度回大大增长,rdd在迭代计算方面会比mapreduce快20倍,而且交互查询很是快。可是rdd也存在缺点,rdd是高度受限的共享内存模型,是不可修改的,而且只能经过修改其余rdd来批量生成。编程
第一章:缓存
1:rdd以前的情况:(1):已经开始普遍的应用高级编程分布式数据处理模型来处理日益增加的数据,如:mapreduce和dryad,而且都会提供 位置感应性调度、容错、负载均衡。而且大多数处理模型是基于高抽象的流失数据处理模型,模型处理数据的特色大概会遵循:稳定的物理存储传入一个由肯定性操做构成的DAG-->处理完成写回稳定的存储,可是这些不太适合"迭代计算"和"交互式数据挖掘工具",基于数据流的模型不明确支持工做集,须要将数据在每次查询时重复的加载进内存进行运算。(2)随之解决这个问题的弹性分布式数据集(RDD)应运而生,同时具备数据流模型的特色:自动位置感应调度、自动容错、可伸缩性。负载均衡
2:rdd特色:(1)rdd显示的将数据缓存在内存中,极大的加速了后期工做集的重用;(2)高度受限的内存模型,只读分区记录,这些记录只能经过特定的操做有其余的rdd生成,这样低成本的实现了容错性。(3)rdd经过血统来重建丢失的分区。机器学习
3:spark介绍:(1)实现rdd称为spark;(2)spark经过scala实现,提供相似于dryadlinq的集成语言编程接口,并支持交互式数据查询和钻取。(3)在迭代时计算上spark比mapreduce快近20倍,数据分析报表快近40倍,同时能够再5-7秒钟交互式扫描1TB的数据。(4)而且rdd还提供了rddbg来支持调试功能。分布式