经典的大数据面试问题

首先,了解什么是大数据?
大数据(big data,mega data),或称巨量资料,指的是需要新处理模式才能具有更强的决策力、洞察力和流称优化能力的海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。大数据的4大特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。

给一个超过100G大小的log file,log中存着IP地址,设计算法找到出现次数最多的IP地址?
提示:但凡是大数据问题都可以通过切分来解决它。
如果我们将其分成1000个小文件,每个文件大概就是500M左右的样子,现在计算机肯定轻轻松松就能装下。
那么,怎么样才能保证相同的IP被分到同一件文件中呢?
这里可以采用哈希切分,使用相同的散列函数(如BKDRHash)将有IP地址转换为一个整数key,再利用index=key%1000就可以将相同IP分到同一个文件。
依次将这1000个文件读入内存,出现次数最多的IP进行统计。
最后,在1000个出现次数最多的IP中找到最大的出现次数即为所求。

你可能感兴趣的:(知识汇总)