海量日志数据中,如何提取某日访问百度次数最多的 IP?
Given massive log data, how do you find the IP that accessed Baidu the most on a certain day?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: 大数据计算, 日志分析, TopK问题
标签: 分而治之, Hash, 文件拆分, HashMap, IP统计, 日志处理
参考答案摘要
核心答案 思路:分而治之 + Hash 。日志文件无法直接读入内存,需要先拆分再统计。 方法一(按原答案步骤) 先筛选出 某一天且访问百度 的日志 IP,逐条写入一个大文件。 由于 IP 为 32 位,最多有 2^32 种,继续采用映射:例如按 Hash(IP) % 1000 拆分为 1000 个小文件。 对每个小文件用 hash_map 统计频率,取该文件频率最高的 IP 及其次数。 最后在 1...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。