今天的生活充斥着各种压力,快节奏的生活方式导致了各种个人问题的猛增,所以,我们更要了解科技,学会运用科技,运用海量数据处理技术。之前的文章已经介绍过很多关于海量数据处理技术的知识了,本文,会继续介绍一下海量数据处理技术的子系统的主要三大功能。
还有一些与上边类似的,但是不太相同的,因为海量数据处理有重复的数(1、2、2、3、3、4,排好序的数并且偶数个的话,中位数是[2+3]/2=2.5 奇数个的话正好是中间的)。比如在5亿int数中找到中位数,这个问题的解决思路其实采用双层桶划分思路。海量数据处理注意一个int占4个Byte。整数的最大位数为32位,那么我们将每个数转换为二进制,然后截取前多少位,要看内存大小。
海量数据处理的解决思路,把整数转为二进制数,然后截取前5位,那么总共分出2^5=32个区间,如果分出文件来共分出32个文件。如果内存不够的话,那么再继续截取(比如16位,这里举例),比如:file_00000, file_00001等。海量数据处理如果截取完了,所有文件一共32个文件,因为都是二进制,所以文件是按照有序排好的。统计每个文件的个数,然后计算中位数所在的文件里。
如果文件还是比较大,假设文件在最后一个文件,即前边2.5亿,最后一个文件2.5亿,文件名字为file_11111。那么海量数据处理再继续按照上边的方法继续拆分(比如再5位 文件名:file_11111_00000 等),知道内存中可以装下整个文件, 可以装下整个文件下的话再进行排序,排好序之后,找到中间的数就是中位数。
将每个文件按关键字进行hash,然后拆分成100个文件,然后每个文件大概100M左右。(分治+hash)。排序可以有很多种。海量数据处理按照不同的方式进行不同的排序,比如快排,最小堆排序,归并排序。如果大文件需要排序,并且严格要求内存的话,分治成小文件,然后采用海量数据处理归并排序很合适, 两个文件,各存放50亿条URL,每个URL占64字节。内存限制是4G,找出两个文件中相同的URL,这个问题有一个内存限制,那么肯定需要分治法。
小伙伴们都明白了吗?以上就是本文对海量数据处理技术的简单介绍了,是不是感觉自己打开了新世界的大门,了解到了新知识。下篇文章,小编还会讲一下关于海量数据处理技术的其他知识,一起期待一下吧。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-21 14:50:24
2020-03-12 17:28:43
2022-11-21 14:52:45
2022-11-21 14:54:14
2022-11-21 14:50:01
2022-11-21 14:50:16
甄选10000+数字化产品 为您免费使用
申请试用
评论列表