重点梳理

博客介绍了MR程序执行时,MapTask和ReduceTask的run方法执行前后分别调用setup和cleanup方法。还提到在map方法前会将文件切片信息传入context对象。此外,阐述了MapReduce的本地和yarn两种运行模式,以及yarn模式运行所需参数和代码设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

1、以上两个图说明,在mr程序执行的时候,其实分别调用了MapTask的run方法和ReduceTask的run方法

这个方法都要一个共同的特点,就是,在run执行前,也就是map方法/reduce方法执行前,要先调用setup方法。在map/reduce方法执行后,要调用cleanup方法

这两个方法是以后我们要注意的点。setup可以加载资源文件,cleanup可以做收尾工作

 

 

2、在map方法之前,会将文件的切片信息传入context对象中,我们在map方法就能拿到这个切片的详细信息,文件名、路径、偏移量等等

3、mapreduce运行模式有两种

1)、本地模式(local)

       单进程,多个线程去运行maptask和reduceTask,主管类:LocalJobRunner

2)、yarn模式

       分布式、多个服务器多个进程,每个进程运行一个task(map/reduce) ,主管类MRAppMaster

4、想要yarn模式运行三个参数必不可少

     1、conf.set("fs.defaultFS","dream1")

     2、conf.set("mapreduce.framework.name","yarn")

     3、conf.set("yarn.resourcemanager.hostname","dream1")

这三个参数默认写在服务器的配置文件里,代码中不要配置,这样在开发环境下默认就是本地,服务器上默认就是yarn模式

5、yarn模式代码中要加两行代码,第一个必须,第二个非必须

    //指定jar包位置,分布式运行,jar包必须要分发到各个nodemanager所以需要指定jar包位置,两种方式 后者好

     job.setJar("/root/temps/xx.jar")

     job.setJarByClass(MrRunner.class)

    //指定资源文件,比如map端join的小表

     job.setCacheFiles()

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值