MapReduce学习day1

MapReduce

MapReduce定义

MapReduce是一个分布式运算程序的编程框架

核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,运行在hadoop集群上

MapReduce优缺点

优点:

(1)易于编程:简单实现接口,即可完成一个分布式程序
(2)良好扩张性:通过增加机器提高计算能力
(3)高容错性:其中一个节点挂掉后,将该机器上的计算任务转移到另外一个节点上运行
(4)适合海量数据离线处理

缺点:

(1)不擅长实时计算,不能和mysql一样实现毫秒级计算
(2)不擅长流式计算,MapReduce输入数据是静态的,不能够动态变化
(3)不擅长DAG计算,spark可以,因为spark将上一个任务的计算结果当作下一个计算结果的输入,中间结果保存在内存中,而MapReduce将中间结果保存到磁盘中,造成IO开销大,性能低

MapReduce核心思想

统计单词个数
数据文件:
java java
python
hadoop

  1. 首先经过Map阶段
    (1)读取到数据文件中的数据,一行一行处理
<0,java java>
<11,python>
<19,hadoop>

(2)按空格切分行内单词

<java,1> <java,1>
<python,1> 
<hadoop,1>

(3)k-v键值对

<java,<1,1>>
<python,1>
<hadoop,1>
  1. Reduce阶段
    (1)统计每个单词数量
<java,2>
<python,1>
<hadoop,1>

结果:
java 1
python 1
hadoop 1

MapReduce进程

(1)MrAppMaster:负责整个程序的过程调度以及状态协调
(2)MapTask:负责map阶段的整个数据处理流程
(3)ReduceTask:负责Reduce阶段的整个数据处理流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值