Spark学习脑图

本文对比了Spark和Hadoop在速度、时延、迭代式数据处理能力及适用场景上的优劣势,深入分析了两者在内存使用、编程模型、转换操作等方面的差异,并详细阐述了Spark的适用场景与不适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度脑图链接:http://naotu.baidu.com/file/8422ab7285ff03bb649894072153e133?token=da10b5dd055f1e3a

 

spark对比hadoop的优势

 hadoopspark
速度中间结果存放在hdfs上中间数据存在内存里,内存放不下会存在本地,不会存在hdfs上
 reduceTask需要等mapTask全部结束后才执行

相同分区的转换构成流水线,放在同一个task中运行。

分区不同的转换中间需要shuffle,放在不同的stage中,需要等前面的stage完成

 

时延高,只适合batch操作。

对于交互式数据操作和实时处理支持不足。

时延低,可以处理micro batch操作
 对迭代式数据处理性能比较差在内存中缓存数据,提高迭代式计算的性能
编程模型抽象层次低,需要手工编写代码来完成计算,使用上难易上手基于RDD的抽象,使数据逻辑处理的代码非常简短。
 只提供两个操作:Map和Reduce,欠缺表达力。提供很多转换和动作,很多基本操作,如join、groupBy等。
 一个job只有map和reduce两个阶段,复杂的计算需要大量job来完成,job之间的依赖关系是由开发者自己管理的。一个job可以包含多个RDD转换操作,在调度时可以生成多个stage。如果多个map操作的RDD分区不变,可以放在同一个task中运行。
 处理逻辑隐藏在代码细节中,没有整体逻辑。在Scala中,通过匿名函数和高阶函数,RDD的转换操作支持流式API,可以提供处理逻辑的整体视图,代码不包含具体的操作实现细节,逻辑更清晰。
   

 

Spark的适用场景:

Spar'k是基于内存的迭代计算框架,适用于需要多次操作特定数据的应用场景,需要反复操作的次数越多,受益越大。

 

不适用场景:

1、数据量小,但是计算密度较大的场景;

2、因为RDD的不可变性,Spark不适用于异步细粒度更新状态的应用场景,例如Web服务的存储,或者是增量的web爬虫和索引,即,不支持增量修改的应用模型。

 

参考文档

1、Spark:一个高效的分布式计算系统(1):http://developer.51cto.com/art/201309/410276.htm

转载于:https://my.oschina.net/rathan/blog/603425

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值