Hadoop与Spark的比较
Hadoop与Spark相比,两者之间有哪些异同点?各自的优势是什么?此外,Hadoop与Spark都支持容错性,Spark在容错性方面是否比Hadoop更具优越性?
在基本原理上:Hadoop和Spark最大的区别在于Hadoop是基于磁盘的大数据批处理系统;而Spark是基于弹性分布式数据集(RDD,显式地将数据存储到磁盘和内存中)。在模型上,Hadoop以MapReduce模型为核心,而Spark除了map和reduce函数操作之外的很多函数操作,诸如join、groupBy、reduceByKey等。
在优势上,Hadoop可以处理超大规模的数据,适合日志分析挖掘等较少迭代的长任务需求,同时Hadoop很好的结合了数据的分布式存储和计算;而Spark适合数据挖掘,机器学习等多轮迭代式计算任务,Spark本身并没有提高数据的分布式存储解决方案,还需要依赖HDFS等第三方存储系统。
在容错性上需要考虑两个方面,第一就是数据容错性;第二就是节点容错性。Hadoop在数据容错性上考虑的很全面,从HDFS本身的冗余复制机制,到安全模式,数据校验,元数据保护,快照机制等,在节点容错性上Hadoop从资源调度层次来解决。而Spark在数据容错性上是建立在RDD概念之上,当一个节点出现故障时,Spark会根据存储信息重新构造数据集。因此Spark在容错性上并不比Hadoop具有优越性,应该是在容错性上Hadoop考虑的更全面,而Spark更加在意处理数据的效率和响应时间。
CDA大数据分析师3月脱产班12月25日开课了 http://cda.pinggu.org/bigdata-jy.html