上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2 大数据处理框架
为了高效处理大数据,工业界和学术界提出了很多分布式大数据处理框架。2004年Google在计算机系统领域顶级会议OSDI上提出了基于分治、归并和函数式编程思想的MapReduce分布式计算框架[6]。这一框架受到了广泛关注,也获得了巨大成功。随后,Apache社区对Google File System[7]和MapReduce进行了开源实现,并命名为Hadoop[8]。经过多年发展,Hadoop已经形成一个完整的生态系统,被工业界和学术界广泛使用,成为当时大数据存储和处理的实际标准。2007年微软公司提出了Dryad分布式计算框架[9]。Dryad的思路跟MapReduce有相似之处,但更加灵活。不同于MapReduce固定的数据处理流程,Dryad允许用户将任务处理组织成有向无环图(Directed Acyclic Graph,DAG)来获得更强的数据处理表达能力。2012年UC Berkeley的AMPLab提出了基于内存,适合迭代计算的Spark分布式处理框架[10,11]。该框架允许用户将可重用的数据缓存(cache)到内存中,同时利用内存进行中间数据的聚合,极大缩短了数据处理的时间。这些大数据处理框架拥有共同的编程模型,即MapReduce-like模型,采用“分治-聚合”策略来对数据进行分布并行处理。