海量日志数据存放在一个超大的文件中无法直接读入内存,要求找出某天访问百度次数最多的 IP。
Massive log data is stored in a huge file that cannot fit into memory. How do you find the IP that visited Baidu the most on a given day?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: 日志分析, 海量数据, Top1 统计
标签: hash partition, frequency count, map-reduce idea, external processing
参考答案摘要
核心答案 核心思路是: 过滤目标日志 → 哈希分桶 → 分桶统计最大值 → 全局比较 。 Step 1:过滤出目标数据 先从指定日期日志中提取所有“访问百度”的记录,将其中的 IP 逐条写入一个大文件。 Step 2:按 IP 哈希映射到小文件 IP 为 32 位,最多 2^32 种。对该大文件中的每个 IP 进行分桶,比如 hash(IP) % 1000 ,写入 1000 个小文件。 Step ...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。