从海量日志中提取访问百度次数最多的IP
2011-09-29 22:01
489 查看
P地址最多有2^32=4G种取值可能,所以不能完全加载到内存中。
可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。
对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。
有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。
P地址最多有2^32=4G种取值可能,所以不能完全加载到内存中。
可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。
对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。
有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。
可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。
对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。
有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。
P地址最多有2^32=4G种取值可能,所以不能完全加载到内存中。
可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。
对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。
有了1024个小文件中的出现次数最多的IP,我们就可以轻松得到总体上出现次数最多的IP。
//hash(IP)%N get many small files int max = 0; String maxip = null; for each file Hashmap hashmap; String IP = readIP(file); if(hashmap.has(IP)) { int cnt = hashmap.get(IP); hashmap.set(IP, cnt+1); if(cnt+1 > max) { max = cnt+1; maxip = IP; } } else hashmap.put(IP, 1);
相关文章推荐
- 海量日志数据,提取出某日访问百度次数最多的那个IP。
- 海量日志数据,提取出某日访问百度次数最多的那个IP。
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
- 海量日志数据,提取出某日访问百度次数最多的那个IP
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
- 算法:海量日志数据,提取出某日访问百度次数最多的那个IP
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
- 海量日志数据,提取出某日访问百度次数最多的那个IP。
- 算法:海量日志数据,提取出某日访问百度次数最多的那个IP
- 海量日志数据,提取出某日访问百度次数最多的那个IP。
- 海量日志数据,提取出某日访问百度次数最多的那个IP的C++实现源代码
- 海量日志数据,提取出某日访问百度次数最多的那个IP。
- 从海量日志中提取访问百度次数最多的IP
- 百度面试题:从海量日志中提取访问百度次数最多的IP
- 海量日志数据提取出访问次数最多的那个IP python实现 总结
- 海量日志数据提取出访问次数最多的那个IP python实现 总结
- 海量日志数据__怎么在海量数据中找出重复次数最多的一个;提取出某日访问网站次数最多的那个IP;提取出某日访问网站次数最多的前n个IP
- 提取出某日访问百度次数最多的那个IP
- 提取访问百度次数最多的ip
- 提取出某日访问百度次数最多的那个IP