关于如何处理海量数据的方法,资料大多是搜來看来的...
常用的数据结构:
1.Bloom Filter
大致思想是这样,把一个数据通过N个哈希函数映射到一个长度为M的数组的一位上,将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明该数据的存在。但不能保证完全正确性,但是此方法无比高效。
【实例】给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。如果是三个乃至n个文件呢?
2.哈希法
这个简单,无非是通过一些哈希函数把元素搞到一个指定的位置,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。这个很一般啊感觉。无非就是分类查找么,完全不如1猛。
3.最大或最小堆
就是一个完全的最大或最小二叉树,用途,比如:1)100w个数中找最大的前100个数。 用一个100个元素大小的最小堆即可。感觉还是不错的。
4.Bit-map
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
【问题实例】
1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。
8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。 (可以理解为从0-99 999 999的数字,每个数字对应一个Bit位,所以只需要99M个Bit==1.2MBytes,这样,就用了小小的1.2M左右的内存表示了所有的8位数的电话)
2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。
将bit-map扩展一下,用2bit表示一个数即可,0表示未出现,1表示出现一次,2表示出现2次及以上,在遍历这些数的时候,如果对应位置的值是0,则将其置为1;如果是1,将其置为2;如果是2,则保持不变。或者我们不用2bit来进行表示,我们用两个bit-map即可模拟实现这个2bit-map,都是一样的道理。
分享到:
相关推荐
海量数据处理方法 海量数据处理是指基于海量数据上的存储、处理、操作,解决方案包括巧妙的算法搭配适合的数据结构,如 Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie 树,以及大而化小、分而治之的策略。...
海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快,所以,对海量数据的研究很有前途,也很值得进行...
"海量数据处理策略.pdf" 本文主要讨论海量数据处理策略,首先介绍了海量数据的特点,即数据量大、数据结构复杂、数据更新快、随机访问等特点。然后,文章讨论了海量数据处理的难点,如数据量过大、硬件要求高、系统...
本文件《海量数据处理面试题.pdf》通过一系列面试题的分析,试图向读者提供一个关于海量数据处理的全面的知识架构。 首先,对于海量数据处理的概念,它涉及的是那些因数据量巨大而难以在短时间内处理完毕,或者数据...
本文档集合正是针对这一挑战,提供了关于海量数据处理的深入理解和实践指导。 首先,我们要关注的是“数据库性能优化”。数据库性能优化是确保系统高效运行的关键,尤其是在处理海量数据时。这涉及到多个方面,如...
描述中提到,“网上很多的海量数据处理分析资料,整理成word”,意味着这份资料可能是从各种来源搜集、整理和归纳的,涵盖了大量关于数据处理和分析的信息,旨在帮助学习者快速获取并掌握相关知识。 从压缩包内的...
本书《Hadoop海量数据处理》是一本专注于Hadoop技术的专业技术书籍,旨在向读者介绍Hadoop生态系统的关键组件、核心概念以及在处理海量数据时的应用方法。全书分为基础篇、应用篇和总结篇三个部分,全面涵盖了Hadoop...
海量数据处理分析方法是现代信息技术领域中的关键技能,尤其对于涉及检索和数据分析的工作岗位而言,掌握这些方法显得尤为重要。随着互联网和物联网的发展,数据量呈现爆炸式增长,传统的数据处理手段已经无法应对...
通过分析提供的三个文档——“海量数据管理第一次上机.docx”、“海量数据管理第三次上机报告.docx”以及“海量数据管理第2次上机.docx”,我们可以揭示出一系列关于海量数据处理的关键知识点。 首先,海量数据管理...
【海量数据处理课程教学大纲(质量标准)共5页.pdf.zip】这个压缩文件包含了关于海量数据处理课程的教学大纲,质量标准等内容,对于学习和教授大数据处理领域的知识具有重要的指导意义。下面将对其中可能涉及的知识...
4. 参考文献:在撰写关于海量数据处理问题优化及应用的研究报告或论文时,需要引用其他学者或专家的研究成果作为理论依据和参考,这些文献可以提供专业的观点、方法和实证研究,对于学术研究和实践操作都非常重要。...
海量数据处理是互联网公司技术面试中的一个重要环节,它主要考察应聘者处理大规模数据集的能力,以及对各种存储、计算、排序算法的理解和应用。以下针对提供的文件内容,提炼出相关的知识点。 首先,海量数据处理的...
包含各种不常见的海量数据处理算法和相应的数据结构。确实是一本好资料啊
面向物联网的海量数据处理研究
由于给定的文件内容部分涉及到PDF电子书的提供信息,并非技术知识点,故这部分内容将被忽略,重点将放在标题与描述所提到的Hadoop海量数据处理技术上。 Hadoop是一个由Apache软件基金会开发的开源框架,旨在支持...
"面向高性能计算机的海量数据处理平台实现与评测" 本文主要讨论了高性能计算机在海量数据处理中的应用和实现。随着时代的进步和科学的发展,高性能计算机已经成为海量数据处理的关键技术之一。高性能计算机的独特...
随着互联网技术的快速发展和大数据时代的到来,海量数据处理成为了一个重要研究领域。传统数据集中处理系统由于数据处理频率较低,导致处理效率和反馈效果不佳。为了解决这一问题,本文提出了基于云计算技术的分布式...
### 海量数据处理面试题与方法大总结 ...以上是关于海量数据处理的一些典型面试题目及解决方案的大致介绍。这些方法和技术在实际应用中都非常实用,可以帮助工程师们解决大数据处理中的许多挑战。
为了高效处理这些数据,以人工智能(AI)为基础的海量数据处理技术的研究显得尤为重要。 首先,AI在海量数据处理中的应用体现在对数据进行自适应分组的技术上。传统的数据搜索技术往往效率低下,尤其是在数据量庞大...