BigData
CircleYua
已弃坑
展开
-
大数据面试题——如何从大量的url中找出相同的url
题目描述:给定a、b两个文件,各存放50亿个url,每个url各占64B,内存限制是4GB,请找出a、b两个文件共同的url分析:由于每个url需要占64B,所以50亿个url占用空间大小为50亿×64=5GB×64=320GB.由于内存大小只有4GB,因此不可能一次性把所有的url加载到内存中处理。对于这种题目,一般采用分治法,即把一个文件中的url按照某一特征分成多个文件,使得每个...原创 2018-11-25 20:31:08 · 3482 阅读 · 0 评论 -
大数据面试题——如何从大量数据中找出高频词
问题描述:有一个1GB大小的文件,文件里面每一行是一个词,每个词的大小不超过16B,内存大小限制为1MB,要求返回频数最高的100个词。分析:由于文件大小为1GB,而内存的大小只有1MB,因此不能一次把所有的词读入到内存中去处理,可以采用分治的方法进行处理:把一个文件分解为多个小的子文件,从而保证每个文件的大小都小于1MB,进而可以直接被读取到内存中处理。解题思路:1、遍历文件,...原创 2018-11-25 21:00:02 · 3991 阅读 · 3 评论 -
大数据面试题——如何在大量数据中判断一个数是否存在
题目描述:在2.5亿个整数中判断一个数是否存在,注意,内存不足以容纳2.5亿个整数。 分析解答:方法一:分治法对于大数据相关的算法题,分治法是一个非常好的方法。针对这一题来说,主要思路为:可以根据实际可用内存的情况,确定一个Hash函数,比如:hash(value)%1000,通过这个Hash函数可以把这2.5亿个数字划分到1000个文件中去(a1,a2……,a1000),然后...原创 2018-11-28 14:43:06 · 8920 阅读 · 1 评论 -
大数据面试题——如何在大量的数据中找出不重复的数
问题描述:在2.5亿个整数中找出不重复的数,注意,内存不足以容纳2.5亿个整数。 分析解读:方法一:分治法采用hash的方法,把这2.5亿个数划分到更小的文件中,从而保证每个文件的大小不超过可用内存的大小。然后对于每个小文件而言,所有的数据可以一次性被加载到内存中,因此可以使用字典或set来找到每个小文件中不重复的数。当处理完所有的文件后就可以找出这2.5亿个整数中所有的不重复...原创 2018-11-28 14:45:02 · 6664 阅读 · 0 评论 -
大数据面试题——如何找出访问最多的IP
问题描述:现有海量日志数据保存在一个超大的文件中,该文件无法直接存入内存,要求从 中提取某天访问BD次数最多的IP 分析解读:由于这个题目只关心某一天访问次数最多的IP,因此可以首先对文件进行一次遍历,把这一天访问的IP的相关信息记录到一个单独的文件中。接下来可以用之前的方法来进行求解。唯一需要确定的是把一个大文件分成多少个小文件比较合适。以IPV4为例子,由于一个IP地址占用32...原创 2018-11-28 14:48:06 · 1979 阅读 · 0 评论 -
大数据面试题——查询热门的字符串
题目描述:搜索引擎会通过日志文件把用户每次检索使用的字符串记录下来,每个查询串的长度为1~255B。假设目前有1000万个记录(这些查询串的复杂度比较高,虽然总数是1000万,但如果出去重复后,那么不超过300万个。一个查询串的复杂度越高,说明查询它的用户越多,也就是越热门的10个查询串,要求使用的内存不能超过1GB.分析:每个查询串的最长为255B,1000万个字符串需要占用2.55...原创 2018-12-15 21:15:18 · 1320 阅读 · 0 评论