hadoopmr实例_大数据中mr编程案例一1.1.mr编程案例2——求TOPN

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

1. mr编程案例一1.1.mr编程案例2——求TOPN

1、读取附件中的文件request.dat,

需求1:求出每一个url被访问的总次数,并将结果输出到一个结果文件中

思路:就是一个wordcount

map阶段: 解析数据,将url作为key,1作为value发出

reduce阶段:将一组数据的value累加

需求2:求出每个网站被访问次数最多的top3个url《分组TOPN》

思路:

map阶段——切字段,抽取域名作为key,url作为value,返回即可

reduce阶段——用迭代器,将一个域名的一组url迭代出来,挨个放入一个hashmap中进行计数,最后从这个hashmap中挑出次数最多的3个url作为结果返回

需求3:求访问次数最多的topn个网站(只能有1个reduceworker)《全局TOPN》

思路:

map阶段:解析数据,将域名作为key,1作为value

reduce阶段:

reduce方法中——对一个域名的一组1累加,然后将 放入一个成员变量Treemap中

cleanup方法中——从treemap中挑出次数最高的n个域名作为结果输出

要点1:每一个reduceworker程序,会在处理完自己的所有数据后,调用一次cleanup方法

要点2:如何向map和reduce传自定义参数

从JobSubmitter的main方法中,可以向map worker和reduce worker传递自定义参数(通过configuration对象来写入自定义参数);然后,我们的map方法和reduce方法中,可以通过context.getConfiguration()来取自定义参数

Configuration conf = newConfiguration() //

这一句代码,会加载mr工程jar包中的hadoop依赖jar中的各默认配置文件*-default.xml

然后,会加载mr工程中自己的放置的*-site.xml

然后,还可以在代码中conf.set("参数名","参数值")

另外,mr工程打成jar包后,在hadoop集群的机器上,用hadoop jar mr.jar xx.yy.MainClass

运行时,hadoop jar命令会将这台机器上的hadoop安装目录中的所有jar包和配置文件通通加入运行时的classpath,

配置参数的优先级:

1、依赖jar中的默认配置

2、环境中的*-site.xml

3、工程中的*-site.xml

4、代码中set的参数

优先级一次增大,高优先级的参数值会覆盖低优先级的参数值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值