开发者社区 问答 正文

如何统计URL,求解答。

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

展开
收起
游客4skzfvnrxrzbi 2021-12-23 14:25:44 384 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等