我是靠谱客的博主 执着西牛,最近开发中收集的这篇文章主要介绍Spark学习脑图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

为什么80%的码农都做不了架构师?>>>   hot3.png

百度脑图链接: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

最后

以上就是执着西牛为你收集整理的Spark学习脑图的全部内容,希望文章能够帮你解决Spark学习脑图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(100)

评论列表共有 0 条评论

立即
投稿
返回
顶部