QUENSTION:海量日志数据,提取出某日访问百度次数最多的那个IP。
解决思路:
1.IP不是无穷的,总共是2……32个 ,所以最多关于IP的数据最多有4G大小,采用分而治之的思想将这些文件在逻辑上分为1024份,每份也只是4MB大小的文件。
2.对这1024份文件进行mapreduce计算,类似wordcount的计算,IP作为key ,value是每个IP出现的次数。
3.1024份的数据计算完后实现升值排序。得到最后结果
实现步骤
1.将日志文件,直接从本地上传到hdfs上,或者先存到Linux中在放到hdfs上
2.修改相关配置文件,使这些文件分为1024份
3.编写类似wordcount的mp程序
4.选出每一小块中出现频率最高的IP
5.然后对这1024条IP进行比较排序
不好意思,只是思路,没有代码,各位简友,要是有源代码,还请不吝赐教,谢谢!
网友评论