MapReduce实战(附源码资料)

有两个海量日志文件存储在hdfs上, 其中登陆日志格式:user,ip,time,oper(枚举值:1为上线,2为下线);访问日志格式为:ip,time,url,假设登陆日志中上下线信息完整,且同一上下线时间段内使用的ip唯一,计算访问日志中独立user(独立user就是用户名不同,例如:user1与user2是独立用户)数量最多的前10个url,用MapReduce实现。

思路:

1.将用户登陆信息整理为 ip-user-loginTime-logoutTime格式文件
2.通过IP将处理后的登陆日志与访问日志关联 ip-user-url
3.统计每个url的独立访问数 url_用户数
4.求出UV前10的url 

程序源码:
链接:https://pan.baidu.com/s/1AspEv9GcwIdmxkjFRytIMQ
提取码:r1ah

解释:

1.执行TopJob,得到:
192.168.1.11, lala, 2017-11-20 11:01, 2017-11-20 11:30
192.168.1.11, tom, 2017-11-20 10:00, 2017-11-20 11:00
.........

2.执行VisitJob, 以1中结果,和 visit.log 在reducer中进行join,得到:

192.168.1.11, tom,url1
192.168.1.11, tom,url2
........

3.执行 TopJob,获得每个url对应的用户个数:
url1	4
url2	3
url3	2

4.执行TopN, 获取排名,这里排出前两个:
url1	4
url2	3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章