Spark和Hadoop有哪些区别?
来源:海牛大数据 时间:2020-11-24 16:25:14 编辑:简单
大数据技术发展流程当中,Hadoop和Spark这两个框架,发展至今仍然占据着重要的地位,当然,这两者也常常也拿来做比较。作为初代的Hadoop和后来者的Spark,两者之间确实也各有其优势。那么今天海牛大数据就来和大家聊聊Spark和Hadoop有哪些区别?
架构区别
Hadoop:MapRedcue由Map和Reduce两个阶段,并通过shuffle将两个阶段连接起来的。但是套用MapReduce模型解决问题,不得不将问题分解为若干个有依赖关系的子问题,每个子问题对应一个MapReduce作业,最终所有这些作业形成一个DAG。
Spark:是通用的DAG框架,可以将多个有依赖关系的作业转换为一个大的DAG。核心思想是将Map和Reduce两个操作进一步拆分为多个元操作,这些元操作可以灵活组合,产生新的操作,并经过一些控制程序组装后形成一个大的DAG作业。
中间计算结果处理区别
Hadoop:在DAG中,由于有多个MapReduce作业组成,每个作业都会从HDFS上读取一次数据和写一次数据(默认写三份),即使这些MapReduce作业产生的数据是中间数据也需要写HDFS。这种表达作业依赖关系的方式比较低效,会浪费大量不必要的磁盘和网络IO,根本原因是作业之间产生的数据不是直接流动的,而是借助HDFS作为共享数据存储系统。
Spark:在Spark中,使用内存(内存不够使用本地磁盘)替代了使用HDFS存储中间结果。对于迭代运算效率更高。
操作模型区别
Hadoop:只提供了Map和Reduce两种操作,所有的作业都得转换成Map和Reduce的操作。
Spark:提供很多种的数据集操作类型比如Transformations包括map、filter、flatMap、sample、groupByKey、reduceByKey、union、join、cogroup、mapValues、sort、partionBy等多种操作类型,还提供Actions操作包括Count、collect、reduce、lookup、save等多种。这些多种多样的数据集操作类型,给开发上层应用提供了方便。
Spark和Hadoop有哪些区别?以上就是简单的介绍了。Spark和Hadoop两个框架,至今仍在大数据当中占据重要地位,二者也有着各自不可替代的优势所在。
海牛大数据专注于大数据课程开发及培训,"因为专注,所以专业"。如果您想要了解更多大数据的知识,您可以浏览我们的网站,我们会为您提供更专业服务。