2.MR基础_工作原理

MapReduce通过Client提交作业,ResourceManager负责集群调度,NodeManager管理节点资源,ApplicationMaster处理应用,HDFS共享数据。MapReduce作业将输入数据拆分成块,由map任务并行处理,再经reduce任务。框架负责任务调度、监视和重试失败任务。MapReduce输入输出为对,需实现Writable接口,key需实现WritableComparable接口。MapReduce处理流程包括数据切片、Mapper处理、分区排序、Reducer合并统计输出。" 133327139,19695036,Python获取网页状态码:requests与urllib库对比,"['Python', '开发语言', 'HTTP']
摘要由CSDN通过智能技术生成

一.MapReduce运行机制

  • Client:提交MapReduce作业
  • ResourceManager:负责集群资源的统一管理和调度
  • NodeManager:它主要负责自己本身节点的资源管理和使用,以及定时向RM汇报本节点的资源使用情况
  • ApplicationMaster:主要负责应用程序的管理
  • HDFS:在其他角色间共享数据文件

二.MapReduce框架

MapReduce作业通常将输入数据集拆分为独立的块,这些块由map任务并行处理。框架对map的输出进行排序,然后输入到reduce任务。通常,作业的输入和输出都存储在文件系统中。该框架负责调度任务,监视它们并重新执行失败的任务。通常,计算节点和存储节点是相同的,即MapReduce框架和Hadoop分布式文件系统在同一组节点上运行。此配置允许框架有效地在已存在数据的节点上调度任务,从而在集群中产生非常高的聚合带宽。

1.MapReduce输入输出

MapReduce框架将输入作为一组<key,value>并生成一组<key,value>作为输出。key和value可以是不同的数据类型。该key和value的类必须由框架序列化,因此需要实现Writable接口。此外,key类必须实现WritableComparable接口以便于按框架进行排序。MapReduce作业的输入和输出类型:

input <k1​​,v1> --> map --> <k2,v2> --> combine --> <k2,v2> --> reduce --> <k3,v3> output

2.MapReduce的处理流程

以WordCount为例:

  • MapReduce Job先将数据集进行切片,之后每个片分发给一个Mapper Task执行。
  • 在Mapper Task执行过程中,根据Partition规则进行分区,然后在分区内排序。
  • 之后,将多个Mapper Task中相同Partition的数据Copy到同一个Reducer所在的节点上,进行合并和排序。
  • 最后,在Reducer Task中统计出单词的词频,并输出到输出文件中。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值