Spark和Hadoop的区别详解(3大区别)

Spark和Hadoop的区别详解(3大区别)-mikechen

Spark

Spark是由美国加州伯克利大学(UCBerkeley)实验室开发,基于内存计算的大数据并行计算框架,Spark是专为大规模数据处理而设计的快速通用的计算引擎。

Spark主要有以下4大特点:

Spark和Hadoop的区别详解(3大区别)-mikechen

1.计算速度快

由于Spark是基于内存的分布式计算引擎,因此其运算效率很快,比如:Spark基于内存运算效率是Hadoop的100被以上,基于硬盘的运算奥效率也要快10倍以上。

2.易用性

Spark编程支持Java、Scala、Python和R等编程语言,并且拥有了80余种算法,简洁的API设计有助于用户轻松构建并行程序,并且可以通过Spark Shell进行交互式编程。

3.通用性

Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件,这些组件可以无缝整合在同一个应用中,足以应对复杂的计算。

4.可扩展

Spark是专注于快速并行计算的引擎,而不是存储,与Apache Hadoop包括存储和计算不同,Spark对存储和计算进行解耦,简单的事情简单做。

这意味着你可以使用Spark来读取存储在各种数据源的数据,例如:Apache Hadoop、Apache Cassandra、Apache Hbase、MongoDB、Apache Hive、RDBMS等存储介质,并在内存中处理它们。

Spark和Hadoop的区别详解(3大区别)-mikechen

 

Hadoop

Spark和Hadoop的区别详解(3大区别)-mikechen

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题。

Hadoop的主要特点如下:

1.可靠性

Hadoop将数据存储在多个备份,Hadoop提供高吞吐量来访问应用程序的数据。

2.高扩展性

Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

3.高效性

Hadoop以并行的方式工作,通过并行处理加快处理速度。

4.高容错性

Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

5.低成本

Hadoop能够部署在低廉的硬件上。

Hadoop是目前最主流的大数据生态体系,其核心包含HDFS分布式存储,Hive数据仓库,Hbase列式数据库,以及Yarn分布式调度等组件。

而Spark是基于内存计算的分布式计算引擎,可以和Hadoop集成使用。

 

Spark和Hadoop的区别

Hadoop虽然已成为大数据技术的事实标准,但其本身还存在诸多缺陷,最主要的缺陷是其MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而适用于离线批处理的应用场景。

Spark在借鉴Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题,相比于MapReduce,Spark主要具有如下优点:

  1. Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活;
  2. Spark提供了内存计算,中间结果直接放到内存中,带来了更高的迭代运算效率;
  3. Spark基于DAG的任务调度执行机制,要优于MapReduce的迭代执行机制;

Spark和Hadoop 的根本差异是多个作业之间的数据通信问题 : Spark 多个作业之间数据通信是基于内存,而 Hadoop 是基于磁盘

Spark将数据载入内存后,之后的迭代计算都可以直接使用内存中的中间结果作运算,避免了从磁盘中频繁读取数据。

但是 Spark 是基于内存的,所以在实际的生产环境中,由于内存的限制,可能会由于内存资源不够导致 Job 执行失败,此时,Hadoop其实是一个更好的选择,所以 Spark并不能完全替代Hadoop。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法