海量数据
懒先森要努力
最淡的墨水也胜于最强的记忆
展开
-
海量数据处理 算法总结
前面我们说海量数据处理提到,从算法的角度去考虑处理海量数据。1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。转载 2013-05-16 10:17:31 · 821 阅读 · 0 评论 -
海量数据处理
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为3转载 2013-03-07 16:46:25 · 646 阅读 · 0 评论 -
海量数据处理
海量数据处理是基于海量数据上的存储、处理、操作。 所谓海量,就是数据量很大,可能是TB级别甚至是PB级别,导致无法一次性载入内存或者无法在较短时间内处理完成。面对海量数据,我们想到的最简单方法即是分治法,即分开处理,大而化小,小而治之。我们也可以想到集群分布式处理。1 海量数据的存储:为大数据分析做准备传统关系型数据库转载 2013-05-15 21:14:41 · 515 阅读 · 0 评论 -
Amazon Dynamo论文解读 - Merkle Tree的使用
Merkle Tree是Dynamo论文中用到的一个算法,读这篇论文前,我并不知道这个算法,所以找了相关资料了解了解,以便我对论文有更进一步的了解。 什么是Merkle Tree Merkle Tree,是一种树(数据结构中所说的树),网上大都称为Merkle Hash Tree,这是因为 它所构造的Merkle Tree的所有节点都是Hash值。Merkle Tree转载 2013-05-15 21:20:54 · 567 阅读 · 0 评论 -
Amazon Dynamo论文解读 — Dynamo数据划分算法
由于公司将来的项目可能需要用到Amazon的DynamoDB数据库,所以,最近想花时间好好研究研究下DynamoDB, 而Amazon在发布DynamoDB前,曾向SISO提交了一篇Dynamo论文,而DynamoDB就是基于这篇论文而实现的,所以,为了对Dynamo有个更深刻的了解,我决定好好看看这篇论文,了解了解论文里的相关算法。 这篇博客,就是基于我对这篇论文的理解,描述转载 2013-05-15 21:18:24 · 1010 阅读 · 0 评论 -
如何从10亿查询词找出出现频率最高的10个?
1. 问题描述在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载率最高的前10首歌等等。2. 当前解决方案针对top k类问题,通常比较好的方案是【分治+trie树/hash+小顶堆】,即先将数据集按照hash方法分解成转载 2013-10-04 18:57:58 · 849 阅读 · 0 评论 -
海量数据处理之排序问题
海量数据处理中一类常见的问题就是排序问题,即对海量数据中的数据进行排序,例如,一个文件中有9亿条不重复的9位整数,对这个文件中数字进行排序。针对这个问题,最容易想到的方法是将所有数据导入到内存中,然后使用常规的排序方法,例如插入排序、快速排序、归并排序等各种排序方法对数据进行排序,最后将排序好的数据存入文件。但这些方法却不能在此适用,由于数据量巨大,在32位机器中,一个整数占用4个字节转载 2013-10-04 19:12:39 · 666 阅读 · 0 评论