Hadoop是大数据领域早期应用最广泛的框架之一,并且随着时间的发展,Hadoop在不断更新优化,以期更好地解决大数据相关的问题。与此同时,市面上也出现了更多新的大数据拼台,比如说Spark、Storm等。今天,我们主要就Hadoop和Spark版本来做一个简单的对比。
Hadoop从2012年5月发布2.0版本之后,基本上完成了核心组件的全部开发,其他后来的组件,更多的是在解决一些小问题。而相比之下的Spark,可以说是在借鉴了Hadoop的MapReduce之后开发的。
为什么呢?因为Hadoop的MapReduce在大数据处理上,有了明显的缺陷,对于大规模数据的离线处理很强势,但是对于实时数据流计算,则表现不佳。这就是Spark出现的契机。
Spark在2014年发布了1.0版本,正是进入市场,随着这几年的发展,市场占有率在不断增加,尤其是在实时数据流计算上,形成了对Hadoop极大的冲击。
Spark集成了MapReduce分布式并行计算的优点,并改进了MapReduce明显的缺陷。
运行速度方面,Spark把中间数据放到内存中,迭代运算效率大大提高。Spark支持DAG图的分布式并行计算,减少迭代过程中数据的落地,提高了处理效率。
容错性方面,Spark引进了弹性分布式数据集RDD的概念,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以数据衍生过程对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错。
编程方面,Spark提供的数据集操作类型有很多种,大致分为:转换操作和行动操作两大类。各个处理节点之间的通信模型不再像Hadoop只有Shuffle一种模式,用户可以命名、物化,控制中间结果的存储、分区等。
从Hadoop和Spark版本对比上来看,很多人所认为的Spark会取代Hadoop,这样的观点是站不住脚的。确实,Spark在计算运行速度上很强势,但是作为大数据平台而言,Spark还缺乏相关的支持组件,比如说HDFS。成都加米谷大数据,大数据技术分享,
大数据培训班课程,更多详情可联系客服了解!