spark对比hadoop的优势

hadoop本身的计算模型决定了hadoop上所有的工作都要转化成map、shuffer和Reduce等核心阶段,由于每次计算都要从磁盘读或者写数据,同时整个计算模型都需要网络传输,
这就导致了越来越不能忍受的延迟性,同时在前一个任务未完成之前,后面的任务都要等待,这直接导致其无力支持交互式应用。

spark具备的优势:
快速
基于spark内存的计算速度比Hadoop MapReduce快100倍以上,基于磁盘的计算速度也快10倍以上。原因是spark有一个 dag有向无环图执行引擎,支持循环数据流和内存计算。

易用
提供多语言api(包括scala、java、python),能够快速实现应用,相比mapreducer有更简洁的代码。而且spark具备功能强大、齐全的rdd算子,可以轻松解决各种数据处理。

容错性高
spark通过RDD来实现高效容错,RDD是一组分布式的存储在节点内存中的只读性的数据集,这些集合是弹性的,某一部分丢失或者出错,可以通过整个数据集的计算流程的血缘关系来实现重建,mapreduce的容错只能重新计算;

通用
提供了一个强大的技术栈,包括查询语言spark sql 、机器学习工具Mllib、实时流工具 spark Streaming 、图计算工具 graph,在同一个应该程序中可以无缝连接使用这些框架。
而hadoop的技术栈相对独立也较为复杂。

集成hadoop
Spark可以运行在第二代hadoop集群管理yarn上,这使得spark可以读取hadoop任何数据。

总结一下:Hadoop特别适合是单次分析的数据量“很大”的情景,而Spark则适用于数据量不是很大的情景,Spark也适用于机器学习之类的“迭代式”应用。
对于中小互联网和企业级的大数据应用而言,单次分析的数量都不会“很大”,因此可以优先考虑使用Spark。


版权声明:本文为weixin_38401971原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。