赞
踩
计算机普及和移动互联网导致数据量爆发式增长
当前的集群存在一些挑战
相应的解决方法(编程模式)
上述几个编程模型需要高效的数据共享;交互数据挖掘需要对同一数据子集进行多个特定的查询;流式应用则需要随时间对状态进行维护和共享。但是上述框架缺乏针对数据共享的高效元语。
Spark编程模型地核心是弹性分布式数据集(Resilient Distributed Dataset,RDD),是MapReduce模型的扩展、延申和改进,解决了MR的缺陷:在并行阶段高效的数据共享,并将MR的操作方式进行关键的优化。
MR等模型也能够将计算转换为一个有向无环图(DAG)的任务集合,这是故障和慢节点问题的关键解决办法,但这些模型除了文件系统外没有其他的存储方式,导致频繁的网络IO。
RDD提供一种基于粗粒度变换(如map\filter)的接口,该接口将相同的操作应用到多个数据集,可以记录创建数据集的"血统"(Lineage),不需要存储真正的数据,从而达到高效的容错性。基于RDD机制实现了多类模型计算:
迭代计算
图处理、数值优化、机器学习算法
交互式SQL查询
Spark SQL提供可观的性能、完善的容错机制
MapReduceRDD
提供MR的超集,DAG数据流
流式数据处理
Spark中RDD的操作主要有创建操作、转换操作、控制操作和行为操作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。