美文网首页
今日份Spark(一)

今日份Spark(一)

作者: 日更专用小马甲 | 来源:发表于2019-05-09 22:56 被阅读0次

和MR的对比

Spark相对于MapReduce在2类场景下会显著增强:

  1. 交互式的场景
  2. 内存迭代计算型的场景。

原因比较简单:比如在1TB日志中,查找Error日志,找到Error日志后再查找早上10点到12点的日志,再找10点00到10点05的日志,类似于单机时候问题排查。

如果用MR实现,可能就是一次次类似grep的操作,如果通过Spark实现就可以在找到Error日志时把数据缓存在内存。避免反复从文件系统加载数据。因为RAM比硬盘或者网络快很多。

粗颗粒度转换 vs 细颗粒度更新

一张表100万数据,数据是用户名,年龄,粗颗粒度就是分成若干个分区,比如每1万条数据一个分区作为维度,共100个分区。细颗粒度就是每条数据作为维度。如果年龄要统一加一岁,粗颗粒转换就是用一个map函数存储age += 1这样的信息,不管原来的年龄是18,30还是54。细颗粒度更新就是每条数据单独存储,18的变为19,30的变为31,54的变为55。

High Performance Spark上对于粗颗粒度的解释:

functions that are applied to the entire dataset

函数作用于整个数据集,相应的就是作用于单条数据,比如数据库的某行记录的更新。

细颗粒度的优势是更新可以针对单条数据,缺点是如果要保证容错性,要把每个阶段的数据都存下来,比如18和19这2个年龄。

粗颗粒度就可以针对异常的分区,根据血缘关系,直接从上层数据计算而来。等于用时间换空间。

粗颗粒度的另一个优势是可以惰性求值。

惰性求值

transform算子如map、filter不会立即执行,而是在action算子时才触发执行。action算子会触发调度器,基于RDD之间的转换关系,构建一个DAG(有向无环图)。也就是说在求值时,它会构建出如何通过一系列步骤到达要求值的点,比如先filer再map,就是2个步骤。这些步骤被称为执行计划。然后调度器依据这些执行计划计算出缺失的分区。

把算子想象成编程的指令。整个过程就是指令编译为可执行代码并惰性求值的故事!

针对pipeline类型的情况,可以进行指令合并。

相关文章

  • 今日份Spark(一)

    和MR的对比 Spark相对于MapReduce在2类场景下会显著增强: 交互式的场景 内存迭代计算型的场景。 原...

  • 今日份spark(三)

    ClusterManager负责资源管理,比如YARN。 Driver负责向资源管理器申请资源,资源也就是Work...

  • 今日份Spark(二)

    一个Application对应至少1个Job。一个Job对应至少1个Stage。一个Stage对应至少1个Task...

  • 今日份(一)

    都说,如果难过了,请你抬头看看天空吧。 我也尝试过。 感觉眼泪要跑出来了,便抬头,闭着眼睛,眼泪就又跑回去了。睁开...

  • spark sql 综合实例

    该文主要展示的是spark sql 例子 (内容是找了份oracle的例子,翻译成spark sql的) 1、需要...

  • spark sql 综合实例

    该文主要展示的是spark sql 例子 (内容是找了份oracle的例子,翻译成spark sql的) 1、需要...

  • spark sql 综合实例

    该文主要展示的是spark sql 例子 (内容是找了份oracle的例子,翻译成spark sql的) 1、需要...

  • spark sql 综合实例

    该文主要展示的是spark sql 例子 (内容是找了份oracle的例子,翻译成spark sql的) 1、需要...

  • 今日份一份甜

    【今日份一份甜】[爱心] ——收到老领导的肯定很开心 认识易灸灸十个月来,真是遇到各种各样的人,听到各种各样的声音...

  • 今日份生活(一)

    2020.5.30 星期六 天气有点小阴 今天的心情还不错,最近的几天一直就是吃了睡睡了吃,感觉在家已经发霉了...

网友评论

      本文标题:今日份Spark(一)

      本文链接:https://www.haomeiwen.com/subject/kldnoqtx.html