海量数据问题-汇总 (2014年4月3日更新)

本文探讨了在处理海量数据时遇到的各种问题及其解决方案,包括日志分析、数据排序、文件索引、集群系统优化等关键领域。文章深入剖析了在大数据场景下,如何高效地进行数据提取、统计、排序和存储,旨在为数据处理工程师提供实用的技术指导。

海量数据问题汇总


海量日志TOP统计

· 30天每天一个日志文件,日志中每个人一个int uid,找出这30天内,访问超过5天的人的个数。


· 一个很大的日志数据,提取出某日访问百度次数最多的那个IP。


· 从300万个查询字符串中统计最热门的10个查询。


· 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。


· 给出一天内的QQ号的登入及登出记录,每条包括时间、QQ号、标记是登入还是登出的标记符。求出一天中最大在线人数和时间(精确到秒)。


· 有一个文件,有很多很多的整数(也许有100亿),寻找其中最大的K个。


· 从5亿个int找它们的中位数。


海量整数查找

· 一个有10亿条记录的文本文件,已按照关键字排好序存储,请设计算法,可以快速的从文件中查找关键字的记录。(阿里笔试题)


· 给一个全是整数的文件,如何判断是否有重复,返回true和false;如果整个文件不能被load到memory,怎么办?


· 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。(编程珠玑)


· 给10MB的内存,给一个4百万整数的文件,找一个不在文件中的整数。


· 单机5G内存,磁盘200T的数据,分别为字符串,然后给定一个字符串,判断这200T数据里面有没有这个字符串,怎么做?如果查询次数会非常的多, 怎么预处理?


· 给定一个包含4300000000个32位整数的顺序文件,找到一个至少出现两次的整数。


· 2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。


· 给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?


· 1000万字符串,其中有些是重复的,需要把重复的全部去掉,保留没有重复的字符串。请怎么设计和实现?


· 一个大数组,其中的元素在1到25000之间,内存为4kB,打印数组中所有正好出现1次的数。


两个大文件找相同点:

· 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?



海量文件索引

· 一个有10亿条记录的文本文件,已按照关键字排好序存储。请设计算法,可以快速的从文件中查找指字关键字的记录。


· 磁盘里有100T的数据,每一个数据项有一个Key,数据项按key的升序排列,但是key不连续。每个数据项的大小不一样,但是都不超过1M,每一个数据项以特定的标识符结束。现在内存大小为256M,如何找到指定Key的数据项?


海量数据排序

· 有一个很大的文件,存放一堆7位的电话号码,号码无重复,请用最小的内存消耗,将其排序。

· 有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。


集群系统

· 如果有100台服务器,每台配置如上描述,它们通过千兆网络组成一个集群,任意两台之间的带宽可以达到1000Mbps,同时假设文件A和B的大小也放大100倍(各位4TB和200TB),并且被切分成1GB的碎片,均匀分布在100台服务器上。请问如何用最快的方法找到A和B之间共同的key,以及他们对应的value值(建议输出格式如下所示:<key><空格><A中对应value><空格><B中对应value>)(阿里笔试题)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值