第九章 海量数据处理

  • 计算机硬件的扩容确实可以极大地提高程序的处理速度,但考虑到其技术、成本等方面的因素,它并非一条“放之四海而皆准”的途径。而随着互联网技术的发展,云计算、物联网、移动通信技术的兴起,每时每刻,数以亿计的用户产生着数量巨大的信息,海量数据时代已经来临。由于通过对海量数据的挖掘能有效地揭示用户的行为模式,加深对用户需求的理解,提取用户的集体智慧,从而为研发人员决策提供依据,提升产品用户体验,进而占领市场,因此当前各大互联网公司研究都将重点放在了海量数据处理.上,但是,只寄希望于硬件扩容是很难满足海量数据处理需要的,如何利用现有条件进行海量信息处理已经成为各大互联网公司亟待解决的问题。所以,海量信息处理日益成为当前程序员笔试面试中一个新的亮点。
 
9.1 问题分析
    海量信息,即大规模数据。随着互联网技术的发展,互联网上的信息越来越多,如何从海量信,息中提取有用信息成为当前互联网技术发展必须面对的问题。
    从海量数据中提取信息,不同于从常规量级数据中提取信息,在海量信息中提取有用数据,会存在以下几个方面的问题:首先,数据量过大,数据中什么情况都可能存在,如果信息数量只有20条,人工可以逐条进行查找、比对,可当数据规模扩展到上百条、数千条、数亿条,甚至更多时,仅仅通过手工已经无法解决,必须借助工具或者程序进行处理。其次,处理海量数据信息,除了要有良好的软硬件配置,还需要合理使用工具,合理分配系统资源,通常情况下,如果需要处理的数据量非常大,超过了TB (1 TB = 1024 GB)级,小型机、大型工作站是要考虑的,普通的计算机如果有好的方法也可以考虑,例如通过联机做成工作集群。最后,信息处理海量数据时,要求很高的处理方法和技巧,如何进行数据挖掘算法的设计以及如何进行数据的存储访问等都是研究的难点。本节的重点将放在如何运用好的方法和技巧来进行海量数据信息处理。
 
9.2 基本方法
    针对含量数据的处理,可以使用的方法非常多,常见的方法有Hash法、Bit - map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层桶法以及MapReduce法。
第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理

第九章 海量数据处理