第九章海量数据处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第九章海量数据处理
计算机硬件的扩容确实可以极⼤地提⾼程序的处理速度,但考虑到其技术、成本等⽅⾯的因素,它并⾮⼀条“放之四海⽽皆准”的途径。
⽽随着互联⽹技术的发展,云计算、物联⽹、移动通信技术的兴起,每时每刻,数以亿计的⽤户产⽣着数量巨⼤的信息,海量数据时代已经来临。
由于通过对海量数据的挖掘能有效地揭⽰⽤户的⾏为模式,加深对⽤户需求的理解,提取⽤户的集体智慧,从⽽为研发⼈员决策提供依据,提升产品⽤户体验,进⽽占领市场,因此当前各⼤互联⽹公司研究都将重点放在了海量数据处理.上,但是,只寄希望于硬件扩容是很难满⾜海量数据处理需要的,如何利⽤现有条件进⾏海量信息处理已经成为各⼤互联⽹公司亟待解决的问题。
所以,海量信息处理⽇益成为当前程序员笔试⾯试中⼀个新的亮点。
9.1 问题分析
海量信息,即⼤规模数据。
随着互联⽹技术的发展,互联⽹上的信息越来越多,如何从海量信,息中提取有⽤信息成为当前互联⽹技术发展必须⾯对的问题。
从海量数据中提取信息,不同于从常规量级数据中提取信息,在海量信息中提取有⽤数据,会存在以下⼏个⽅⾯的问题:⾸先,数据量过⼤,数据中什么情况都可能存在,如果信息数量只有20条,⼈⼯可以逐条进⾏查找、⽐对,可当数据规模扩展到上百条、数千条、数亿条,甚⾄更多时,仅仅通过⼿⼯已经⽆法解决,必须借助⼯具或者程序进⾏处理。
其次,处理海量数据信息,除了要有良好的软硬件配置,还需要合理使⽤⼯具,合理分配系统资源,通常情况下,如果需要处理的数据量⾮常⼤,超过了TB (1 TB = 1024 GB)级,⼩型机、⼤型⼯作站是要考虑的,普通的计算机如果有好的⽅法也可以考虑,例如通过联机做成⼯作集群。
最后,信息处理海量数据时,要求很⾼的处理⽅法和技巧,如何进⾏数据挖掘算法的设计以及如何进⾏数据的存储访问等都是研究的难点。
本节的重点将放在如何运⽤好的⽅法和技巧来进⾏海量数据信息处理。
9.2 基本⽅法
针对含量数据的处理,可以使⽤的⽅法⾮常多,常见的⽅法有Hash法、Bit - map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层桶法以及MapReduce法。