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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章