春风如贵客,一到便繁华。各位看官点赞再看,养成好习惯(●´∀`●)
声明:本人没有刷 leetcode的习惯!!!不是算法大神!!!
前言:
在一台32核 64G内存的物理主机(RedHat7.4)上,存有2个大文件,每个文件大小约为1T,内容为英文单词组成的文档,现在需要统计每个英文大词在两个2文件中总共出现的次数。
分析:
如果你直接将两个大文件加载到内存中,如果是面试,或者日常工作中,这是很危险的。
- 没有直接分析问题,简单粗暴,为之后的工作埋线隐患。
- 遇事不知变通,缺乏学习能力。
下面说我个人的思路:
- 1T文件,64G内存,意味着该文件不能直接读到内存中。
- 我们可以采用分而治之的思想,将文件分片。
- 1T文件可以分成3000份,每份大小约300M。(这点也可以分成1000份,2000份)
- 单独统计每一份的文件中,每个英文单词出现的次数。
- 可以使用redis、或者变量、或者数据库保存每份文件的统计结果。