首页 > 大数据 > 正文

大数据处理为何选择Spark,而不是Hadoop

2018-01-22 09:24:07  来源:网络大数据

摘要:Spark是一个用来实现快速而通用的集群计算的平台。在速度方面,Spark扩展了广泛使用的MapReduce计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。
关键词: 数据分析
  Spark是一个用来实现快速而通用的集群计算的平台。在速度方面,Spark扩展了广泛使用的MapReduce计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。

  一.基础知识

  1.Spark

  Spark是一个用来实现快速而通用的集群计算的平台。

  在速度方面,Spark扩展了广泛使用的MapReduce计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。

  Spark项目包含多个紧密集成的组件。Spark的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。

\
Spark的各个组件

  2.Hadoop

  Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

  用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

  Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

  二.大数据处理选择

  根据Spark和Hadoop的基础知识,我们了解Spark和Hadoop都 可以进行大数据处理,那我们如何选择处理平台呢?

  1.处理速度和性能

  Spark扩展了广泛使用的MapReduce计算模型,其中Spark有个Directed Acyclic Graph(DAG有向无环图)执行引擎,支持循环数据流和内存计算。

  Hadoop是磁盘级计算,进行计算时,都需要从磁盘读或者写数据,同时整个计算模型需要网络传输,导致MapReduce具有高延迟的致命弱点。

  据统计,基于Spark内存的计算速度比Hadoop MapReduce快100倍以上,基于磁盘的计算速度也要快10倍以上。

  2.开发难易度

  Spark提供多语言(包括Scala、Java、Python)API,能够快速实现应用,相比MapReduce更简洁的代码,安装部署也无需复杂配置。使用API可以轻松地构建分布式应用,同时也可以使用Scala和Python脚本进行交互式编程。

  3.兼容性

  Spark提供了一个强大的技术栈,基于”One Stack to rule them all”的理念实现一体化、多元化的大数据处理平台,轻松应对大数据处理的查询语言Spark SQL、机器学习工具MLlib、图计算工具GraphX、实时流处理工具Spark Streaming无缝连接。

  Hadoop的技术栈则相对独立复杂,各个框架都是独立的系统,给集成带来了很大的复杂和不确定性。

  4.相互集成性

  Spark可以运行在Hadoop集群管理Yarn上,这使得Spark可以读取Hadoop的任何数据。同时它也能读取HDFS、HBase、Hive、Cassandra以及任何Hadoop数据源。
第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:zhangxuefeng

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。