海量数据处理
ojshilu
https://github.com/lucky521
展开
-
bitmap 在海量数据处理中的使用
1,在处理海量数据的时候,必须要高效利用内存空间,否则内存不可能存下这么多数据。如果我只想记录某个数据的存在性,可以利用bitmap原理,把每个数据映射为一个bit。1表示存在,0把表示不存在。2,bitmap原理:涉及到的变量bitmap:一个char型数组,用于存储信息。index:bitmap中的一个位置size:bitmap中能存储的数据原创 2013-10-21 10:27:35 · 1164 阅读 · 0 评论 -
Hash表的一种实现
Hash是在数据统计和海量数据处理中经常使用到的一个方法和数据结构。Hash支持的外部操作:插入新数据、查找数据。(一般不支持删除数据)Hash的使用包括两个重要部分:一个是Hash函数,一个是存储方法。Hash函数:把数据集的一个单元转换成hashID。比如要存储一个个字符串,就需要把字符串转换为hashID。存储方法:如何组织数据集的数据。这里涉及到一个问题就是,相同h原创 2014-02-17 09:56:57 · 906 阅读 · 0 评论 -
堆的实现 Heap
一定要注意堆排序和堆操作的区别和联系。堆的一个特点是原地操作,所以不要申请新的空间来存堆,原地操作即可。堆的最初始操作是堆的建立、堆的调整,进阶操作是堆的新元素插入和堆的元素删除。这里的插入和删除是可以对堆中的任何一个元素进行的。而堆排序实际上是堆操作的一个片面的应用,其插入和操作都是在堆的起始和末尾进行的。原创 2013-10-08 18:12:46 · 2193 阅读 · 0 评论 -
海量数据问题 解决方法 (2014年4月3日更新)
海量数据的难点: 1、时间长:怎么设计优化? 2、空间不够: 怎么大而化小、分而治之?怎么样存储能又省又快?解决海量数据问题的主体思想:先划分为小,再快速处理,最后合并。 1、数据(文件)拆分:通过取模运算,将大数据(文件)拆分为若干个小数据(文件)。文件的拆分可能不是简单的几刀切,有可能是对所有数据根据某个依据的映射划分,这类似于桶的思想。 2原创 2013-10-22 20:23:49 · 960 阅读 · 0 评论 -
海量数据问题-汇总 (2014年4月3日更新)
海量数据问题汇总海量日志TOP统计· 30天每天一个日志文件,日志中每个人一个int uid,找出这30天内,访问超过5天的人的个数。· 一个很大的日志数据,提取出某日访问百度次数最多的那个IP。· 从300万个查询字符串中统计最热门的10个查询。· 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频原创 2013-10-21 14:48:02 · 2126 阅读 · 0 评论 -
读取文件中的随机一行 Random Probability
假设有一个文本文件,文件中有若干行。要求返回随机的一行。每行的被选概率相同。两种情况:1、如果文件很大,不能全放入内存2、如果是文件流大文件的特点是不能载入内存随机读取,文件流的特点是只能读取一次。//伪代码i = 1chosen_line = ""while line has next:if random() < 1/i: # random return原创 2014-02-25 10:49:01 · 4002 阅读 · 4 评论 -
学习NoSQL
NoSQL的全称是Not Only SQL,显然是跟数据库存储有关的。原创 2014-08-28 14:58:29 · 826 阅读 · 0 评论