MapReduce是啥

通俗解释

比如计算一副牌有多少张,最简单的方法是自己一张一张数。
但MapReduce思想是把牌分给大家,大家一起数,数完加起来。

分而治之

应用在计算任务可以水平切分,而不是相互依赖
比如需要a事件完成才能执行b事件(可以理解为上下游关系)

Map和Reduce是什么呢

Map(映射):分配给集群机器,对每个目标应用同一操作
Reduce(归纳):整合部分结果

  • file分为多个spilt,交给多个Mapper Task处理
  • 处理完根据键值对进行shuffle,保证同一个key的放到一起
  • 整合完交给reducer Task
  • 写入hdfs

图片说明

例子!!!!

文本

the weather is good
today is good
good weather is good
today has good weather

通过split拆分

Split-0: [0, "the weather is good]
Split-1: [1, "today is good"]
Split-2: [2, "good weather is good"]
Split-3: [3, "today has good weather]

Mapper映射

Mapper-0: ["the", 1], ["weather", 1], ["is", 1], ["good", 1]
Mapper-1: ["today", 1], ["is", 1], ["good", 1]
Mapper-2: ["good", 2], ["weather", 1], ["is", 1]
Mapper-3: [today", 1], ["has", 1], ["good", 1], ["weater", 1]

shuffle

["good", {1, 1, 2, 1}]
["has", {1}]
["is", {1, 1, 1}]
["the", {1}]
["today", {1, 2}]
["weater", {1,1}]

reducer

Reducer-0: ["good", 5]
Reducer-1: ["has", 1]
Reducer-2: ["is", 3]
Reducer-3: ["the", 1]
Reducer-4: ["today", 2]
Reducer-5: ["weather", 3]

END

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 12:10
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务