hadoop和spark的区别
学习hadoop已经有很长一段时间了,好像是二三月份的时候朋友给了一个国产Hadoop发行版下载地址,因为还是在学习阶段就下载了一个三节点的学习版玩一下。在研究、学习hadoop的朋友可以去找一下看看(发行版DKhadoop,去大快的网站上应该可以下载到的。)
在学习hadoop的时候查询一些资料的时候经常会看到有比较hadoop和spark的,对于初学者来说难免会有点搞不清楚这二者到底有什么大的区别。我记得刚开始接触大数据这方面内容的时候,也就这个问题查阅了一些资料,在《FreeRCH大数据一体化开发框架》的这篇说明文档中有就Hadoop和spark的区别进行了简单的说明,但我觉得解释的也不是特别详细。我把个人认为解释的比较好的一个观点分享给大家:
它主要是从四个方面对Hadoop和spark进行了对比分析:
<!--[if !supportLists]-->1、<!--[endif]-->目的:首先需要明确一点,hadoophe spark 这二者都是大数据框架,即便如此二者各自存在的目的是不同的。Hadoop是一个分布式的数据基础设施,它是将庞大的数据集分派到由若干台计算机组成的集群中的多个节点进行存储。Spark是一个专门用来对那些分布式存储的大数据进行处理的工具,spark本身并不会进行分布式数据的存储。
<!--[if !supportLists]-->2、<!--[endif]-->两者的部署:Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。所以使用Hadoop则可以抛开spark,而直接使用Hadoop自身的mapreduce完成数据的处理。Spark是不提供文件管理系统的,但也不是只能依附在Hadoop上,它同样可以选择其他的基于云的数据系统平台,但spark默认的一般选择的还是hadoop。
3、数据处理速度:Spark,拥有Hadoop、 MapReduce所具有能更好地适用于数据挖掘与机器学习等需要迭代的的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
4、数据安全恢复:Hadoop每次处理的后的数据是写入到磁盘上,所以其天生就能很有弹性的对系统错误进行处理;spark的数据对象存储在分布于数据集群中的叫做弹性分布式数据集中,这些数据对象既可以放在内存,也可以放在磁盘,所以spark同样可以完成数据的安全恢复。