随着互联网、移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司 IDC 预计 2011 年的数据总量将达到 1.8 万亿 GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求。 作为一家互联网数据分析公司,我们在海量数据的分析领域那真是被“逼上梁山”。多年来在严苛的业务需求和数据压力下,我们几乎尝试了所有可能的大数据分析方法,最终落地于Hadoop 平台之上。 Hadoop 在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业主流的大数据分析平台。本文主要介绍一种基于 Hadoop 平台的多维分析和数据挖掘平台架构。 大数据分析的分类 Hadoop 平台对业务的针对性较强,为了让你明确它是否符合你的业务,现粗略地从几个角度将大数据分析的业务需求分类,针对不同的具体需求,应采用不同的数据分析架构。 按照数据分析的实时性,分为实时数据分析和离线数据分析两种。 实时数据分析一般用于金融、移动和互联网B2C 等产品,往往要求在数秒内返回上亿行数据的分析,从而达到不影响用户体验的目的。要满足这样的需求,可以采用精心设计的传统关系型数据库组成并行处理集群,或者采用一些内存计算平台,或者采用 HDD 的架构,这些无疑都需要比较高的软硬件成本。目前比较新的海量数据实时分析工具有 EMC 的 Greenplum、SAP 的 HANA 等。 对于大多数反馈时间要求不是那么严苛的应用,比如离线统计分析、机器学习、搜索引擎的反向索引计算、推荐引擎的计算等,应采用离线分析的方式,通过数据采集工具将日志数据导入专用的分析平台。但面对海量数据,传统的 ETL 工具往往彻底失效,主要原因是数据格式转换的开销太大,在性能上无法满足海量数据的采集需求。互联网企业的海量数据采集工具,有Facebook 开源的 Scribe、LinkedIn 开源的 Kafka、淘宝开源的 Timetunnel、Hadoop 的Chukwa 等,均可以满足每秒数百 MB 的日志数据采集和传输需求,并将这些数据上载到Hadoop 中央系统上。 按照大数据的数据量,分为内存级别、BI 级别、海量级别三种。 这里的内存级别指的是数据量不超过集群的内存最大值。不要小看今天内存的容量,Facebook 缓存在内存的 Memcached 中的数据高达 320TB,而目前的 PC 服务器,内存也可以超过百 GB。因此可以采用一些内存数据库,将热点数据常驻内存之中,从而取得非常快速的分析能力,非...