开发者社区> 问答> 正文

如何统计URL,求解答。

已知淘宝web服务器上有1个access日志文件,记录着用户访问的url,url总数 100 亿以上,每个 url 约占 64 字节,这些url可能存在重复,在一个内存只有2G的机器上,怎么样才能统计出访问频率最高的前100 个 URL。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 14:25:44 373 0
1 条回答
写回答
取消 提交回答
  • 100 亿 *64/1024/1024/1024=596G,可考虑分成 1000 个文件处理,每 个文件大约 600M。顺序读取文件,每行按照 hash(url)%1000 的结果将 url 写入到 1000 个文件中,这个过程是 mapreduce 中的 map。 针对每个小文件,使用 hashmap 统计每个 url 出现的次数,并使用堆排序得到访问 次数最高的前 100 个 url, 将每个文件排序好的100个url及对应的count输出到1000个文件,最后将这个 1000 个文件(此时每个文件只有 100 行 ) 进行合并排序。

    2021-12-23 17:32:59
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载