大数据面试题

1)给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?!

解决方法

将100G分成100份,将每个ip映射到相应文件中 ip_if=ip%100

找出每个文件中的出现次数最多的一个ip

再将100份里找出来的最多的一个放入一个哈希表中进行比较找出最大值

2)与上题条件相同,如何找到top K的IP?如何直接⽤用Linux系统命令实现?

解决方法

将100G分成100份,将每个ip映射到相应文件中 ip_if=ip%100

找出每个文件中的出现次数最多的k个ip

再将100份里找出来的最多的k个放入一个哈希表中进行比较找出最大的k 个

3)给定100亿个整数,设计算法找到只出现一次的整数!

将100亿个数分拆成1000份文件,再将每份文件里使用位图,并用两位bit表示数字出现的次数,00存出现0次的数,01存放出现1次的数,10存放出现多次的数,11舍弃,再将1000份中出现一次的数全部合并到一个文件里存放即可

4)给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集!

将第一个文件里的数用哈希映射到1000个文件中,将第二个文件用同样的哈希映射到另1000个文件中,然后比较每个哈希映射相同的文件即可
5)1个文件有100亿个int,1G内存,设计算法找到出现次数不超过2次的所有整数!

将100亿个数分拆成1000份文件,再将每份文件里使用位图,并用两位bit表示数字出现的次数,00存出现0次的数,01存放出现1次的数,10存放出现2次的数,11舍弃,再将1000份中出现次数不超过二的数全部合并到一个文件里存放即可
6)给两个文件,分别有100亿个query,我们只有1G内存,如何找到两个文件交集?
算法和近似算法!

精确算法:

将两个文件分别存入相同哈希算法的1000个哈希桶(共两千个)文件,再在每个文件找出相同的query

近似算法:

利用布隆过滤器进行比较

7)如何扩展BloomFilter使得它支持删除元素的操作?!

将bloomfilter中每一位扩展成一个技术为,例如00表示无,01表示1,当没删除一个,计数器减1,直到减为0为止
8)如何扩展BloomFilter使得它支持计数操作?!

同上题思路
9)给上千个文件,每个文件大小为1K—100M。给n个词,设计算法对每个词找到所有包含它的文件,你只有100K内存!

对上千个文件生成1000个布隆过滤器,并将1000个布隆过滤器存入一个文件中,将内存分为两份,一分用来读取布隆过滤器中的词,一块用来读取文件,知道将每个布隆过滤器读完为止

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值