在现在这个科技时代,我们每个人都会产生许多数据,那么如何实现海量数据处理呢,本篇就跟着小编的脚步一起来了解一下什么是海量数据处理技术吧。海量数据处理慢慢进入到我们的视野,并扮演这越来越重要的角色,我知道,一定有很多人不知道如何使用海量数据处理,本篇文章就详细介绍一下关于海量数据处理平台的相关名词的解释。
统计重复出现的个数,那么如何统计不重复的个数。比如:有个电话本,里边记录的电话号码都是8位数字。统计电话本里边有多少电话号码?将每个文件按关键字进行hash,然后拆分成100个文件,然后每个文件大概100M左右,(分治+hash)。这个里边肯定也是有一些局限的,比如内存限制。再比如再2.5亿整数中找到不重复的整数的个数,当然,内存中不能够存储着2.5亿数据,这种解决的思路一般是位图算法(bitMap)解决。
以电话号码为例:电话号码是8位数字,也就是出现的数字应该为11111111-99999999,总数为99999999,咱们采用位图法(因为最省内存)。一个bit位代表一个数字,那么这些数字共需要99999999个bit。占用内存为 99999999/8/1024/1024约等于11.92M。即如果这个数字所在的位有数据,那么这个bit位就设置为1,否则设置为0。
这样只需要12M的内存就可以统计这些数据了。当然2.5亿整数同理,在内存中所有整数的个数为2^32。一个数对应一个bit,大概需要512M内存就可以了,如果给的内存还不够的话,则需要再次进行拆分。
看到这种问题的话,首先得考虑是否机器资源足够使用,如果足够使用的话,就直接加入内存,但是如果不够的话需要考虑分治。解决思路,还有就是一般的TOP K问题,就是找出前多少位的这种。一般内存容量都不是很大,采用的方式是 分治+hash+最小(大)堆排序,当然分布式的适合处理方式为MapReduce处理,如果涉及到单词的类型处理的话,需要使用Trie树进行,因为这个非常合适处理,并且复杂度为O(k)。
以上,就是小编对于海量数据处理技术的先关知识的简单介绍,不得不说,我们人类发展至今,科技起了至关重要的作用,也正因为如此,让我们来了解更多关于海量数据处理技术的知识吧。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-21 14:50:16
2022-11-21 14:50:38
2022-11-21 14:54:14
2022-11-21 14:52:32
2022-11-21 14:54:48
2022-11-21 14:52:45
甄选10000+数字化产品 为您免费使用
申请试用
评论列表