大数据及其带来的挑战
大数据具有 数据量大(Volume)、数据类型多样(Variety)、产生与处理速度快(Velocity)、价值高(Value) 的4V特性。
关系型数据库解决了关系型数据的存储与OLTP(On-line Transcation Processing,在线事务处理)问题,数据仓库解决了数据建模及OLAP(On-line Analytical Processing,在线分析处理)问题。
大数据处理框架
MapReduce分布式计算框架(Google):基于分治、归并和函数式编程思想;
Dryad分布式计算框架(微软):不同于MapReduce固定的数据处理流程,Dryad允许用户将任务处理组织成有向无环图(DAG,Directed Acyclic Graph)来获得更强的数据处理表达能力;
Spark分布式处理框架(UC Berkeley 的 AMPLab):基于内存,适合迭代计算的分布式处理框架,允许用户将可重用的数据缓存(cache)到内存中,同时利用内存进行中间数据的聚合,极大缩短了数据处理的时间。
这些大数据处理框架拥有共同的编程模型,即 MapReduce-like 模型,采用“分治-聚合”策略来对数据进行分布并行处理。
大数据应用及编程模型
MapReduce编程模型可以被简单地表示为:
map阶段:map<K1,V1> => list<K2,V2>
reduce阶段:reduce<K2,list(V2)> =>list<K3,V3>