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

一.基础知识sql

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数据源。

欢迎工做一到五年的Java工程师朋友们加入Java架构开发: 855835163 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用本身每一分每一秒的时间来学习提高本身,不要再用"没有时间“来掩饰本身思想上的懒惰!趁年轻,使劲拼,给将来的本身一个交代!

相关文章
相关标签/搜索