海量数据处理

100台机器上海量IP如何查找出现频率 Top 100?

场景题
有 100 机器,每个机器的磁盘特别大,磁盘大小为 1T,但是内存大小只有 4G,现在每台机器上都产生了很多 ip 日志文件,每个文件假设有50G,那么如果计算出这 100 太机器上访问量最多的 100 ip 呢?也就是Top 100。

解决方案:
1. 先用 hash 算法,把 ip 按照 hash 值哈希到不同的机器上,保证相同的ip在相同的机器上
1. 再对每个机器上的ip文件再hash成小文件,这个时候再分别统计小文件的出现频次,用最小根堆处理,不同文件的结果排序,就可以得到每台机器的top 100
1. 再进行不同机器之间的结果排序,就可以得到真正的 top 100。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注