概述
为什么80%的码农都做不了架构师?>>>
百度脑图链接:http://naotu.baidu.com/file/8422ab7285ff03bb649894072153e133?token=da10b5dd055f1e3a
spark对比hadoop的优势
hadoop | spark | |
速度 | 中间结果存放在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
最后
以上就是执着西牛为你收集整理的Spark学习脑图的全部内容,希望文章能够帮你解决Spark学习脑图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复