spark与mr的异同

南墨10个月前技术文章453

1.

MR:抽象层次低,需要使用手工代码来完成程序编写,使用上难以上手;

Spark:Spark 采用RDD 计算模型,简单容易上手。

2.

MR:只提供map 和reduce 两个操作,表达能力欠缺;

Spark:Spark 采用更加丰富的算子模型,包括map、flatmap、groupbykey、reducebykey 等;

3.

MR:一个job 只能包含map 和reduce 两个阶段,复杂的任务需要包含很多个job,这些job 之间的管理以来需要开发者自己进行管理;

Spark:Spark 中一个job 可以包含多个转换操作,在调度时可以生成多个stage,而且如果多个map 操作的分区不变,是可以放在同一个task 里面去执行;

4.

MR:中间结果存放在hdfs 中;

Spark:Spark 的中间结果一般存在内存中,只有当内存不够了,才会存入本地磁盘,而不是hdfs;

5.

MR:只有等到所有的map task 执行完毕后才能执行reduce task;

Spark:Spark 中分区相同的转换构成流水线在一个task 中执行,分区不同的需要进行shuffle 操作,被划分成不同的stage 需要等待前面的stage 执行完才能执行。

6.

MR:只适合batch 批处理,时延高,对于交互式处理和实时处理支持不够;

Spark:Spark streaming 可以将流拆成时间间隔的batch 进行处理,实时计算。


相关文章

HDFS Fsimage分析磁盘目录(文件级别)

HDFS Fsimage分析磁盘目录(文件级别)

首先获取fsimage信息hdfs dfsadmin -fetchImage  /opt/fsimage格式化fsimage 转换为可读文本hdfs oiv -i /opt/fsimage/fsima...

MySQL运维实战之元数据和数据字典

什么是元数据假设我们执行一个简单的SQL:select * from tab where col = 'value'...

Oracle数据库恢复演练

1、演练目的验证核心系统数据库备份的有效性,在极端数据库故障情况下保证数据库存在一份可用的备份文件,为业务数据的安全提供保障。 2、演练准备提供一台2C16G本地60G的阿里ecs服务器,操...

8.0 新特性-Redo 配置的变化

8.0 新特性-Redo 配置的变化

说明本篇文章将介绍 MySQL Redo 日志的作用,及需要关注的参数,在 5.7、8.0 Redo 的变化。1. Redo 日志介绍1.1. Redo 有什么作用为了取得更好的读写性能,InnoDB...

Atlas集成Hive

Atlas集成Hive

1 集成原理2 验证Hive元数据采集效果(1) 查看Atlas里是否有Hive元数据(2) 进入Hive创建一个库表create database if not exists foo;(3) 进入A...

flink应用场景分析

•       Flink适合场景:•       实时数据流处理,对实时的海量...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。