【Java八股-第二十期】海量数据处理 - 操作系统

提纲:

🔥海量数据处理

  • 前缀树Trie

  • 分治归并

  • Bloom Filter

  • Bit Map

一、海量数据处理

1. 前缀树 Trie

  • Q:有 xx 个文件存储了 xx 个 query 语句,取出出现次数前 k 高的语句

  • A:query 语句,是一种重复率很高的字符串类型,并且不同的 query 语句也可能有相同的前缀,对于这类数据(还有手机号码,英语单词)等,可以采用 Trie 前缀树来进行存储,然后使用大根堆 PriorityQueue,遍历 Trie时取出最多的元素

2.分治归并

  • Q:有(多个文件)海量的 xxx 数据,统计出现次数前 k 多的 xxx

  • A:可以采用分治归并,将海量数据按 HashCode % 1024 分别存储到 1024 个小文件中,

  • 再从每个小文件中选出出现次数前 k 多的数据,最后再归并,从这 1024 * k 个数据中找出前 k 多的数据

    • #不一定是 1024,按实际需求算

    • #计算 HashCode 方法主要有 平方取中/位移叠加(jdk的 String)/全随机,但要保证能够均匀哈希

    • #可以分批归并

  • Q:有两个文件,各存储了海量的 xxx 数据,要求取出两个文件中相同的数据

  • A:可以采用分支归并,将 A 的数据按 HashCode % 1024 分别存储至 a0...ai...a1024,按同样的哈希算法,将 B 的数据分治,再分别比较 a0 与 b0,ai 与 bi,最后将比较得到

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

代码鹿のJAVA八股面试题总结 文章被收录于专栏

【📫专栏目录在最底部📫】 - 本专栏适合于JAVA已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了JAVA、Spring、计算机网路、操作系统、计算机网络、MySQL、算法与数据结构、中间件等一系列知识点,总结出了高频面试考点(附有答案),事半功倍,为大家春秋招助力。 - 本专栏内容分为五章

全部评论
最后的BitMap有点问题吧? 84亿个bit位,一个数占用2bit,如何存储250亿个数的。。。
点赞 回复 分享
发布于 2022-07-24 16:12

相关推荐

05-07 13:29
已编辑
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司10个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务