如果对一个只包含ip地址文件进行统计,需要求出频率最高的前10个IP地址应该如何处理?文件2G,内存128MB。
解决办法:先拆分文件统计,然后再合并?
但如何处理如下的问题呢?
对于A,B两组机器,如果取top3,貌似A1,A2,A3就是。但如何避免A6和B6是同一个IP,如果相加会超过A1。其实答案应该是A6,A1,A2。
1 | 2 | 3 | 4 | 5 | 6 | |
A | 3000 | 2999 | 2998 | 2997 | 2996 | 2995 |
B | 1000 | 999 | 998 | 997 | 996 | 995 |
解决办法:
通过hash(ip)%2来避免同一个ip落在不同的机器上。