IP取值范围为:0.0.0.0~255.255.255.255 共有 256^4~4G个IP,一般采用“分而治之”的策略处理这种海量数据。
方法一:分而治之
1、文件切分
将4G个IP 通过hash运算(保证相同的IP分配到同一个文件),分配到1024个小文件中,每个文件最多包含 4G/1024=4M个Ip,然后依次处理每个小文件的数据。
2、统计每个IP出现的次数
每个小文件的处理方式:构造一个HashMap(IP->出现的次数),用于统计小文件中每个Ip出现的次数
3、输出每个小文件的TopN
使用容量为TopN的最大堆,输出每个文件出现次数TopN个IP
4、输出全局TopN Ip
将TopN*1024个IP 输入到一个TopN的最大堆,计算出全局出现次数TopN的Ip
方法二:使用spark等大数据计算框架
使用mapreduce、spark等大数据框架处理大数据,本质上也是分而治之的思想,将大批量数据切分成小批量数据,分发到不同的机器计算,然后将计算结果汇总。
标签: topn、ip、分而治之、次数、4g
笔试题
刷题
简历模板
AI算法
大数据
内推
内推: