Hadoop的伸缩性、健壮性、计算性能和成本有着无法代替的优势,事实上已经作为了当今互联网企业最主流的大数据处理平台。
大数据处理的分析分类
Hadoop平台对于业务的针对性相当强,为了能够让你了解是否和你的业务符合,现在从几个角度来将大数据处理业务进行分类,根据需求的不同选择不同的数据分析架构。
根据数据分析的实时性,主要分为离线数据和实时数据分析
实时数据分析处理主要是用在金融、互联网等行业,在需求上一般都是返回上亿的数据处理,以达到不影响用户体验的目的。为了满足这种需求,可以对于传提供的数据组库进行精心的设计,并组成并行处理集群,还可以采用一些内存计算平台,比如HDD的架构,但是这样都会提高软硬件的成本。对于目前比较心的实时海量数据的分析工具主要为EMC的Greenplum、SAP的HANA等。
针对于数据处理返回时间要求没有这么高的应用,蔽日离线统计分析处理、机器学习、搜索引擎的反响索引计算等,一般都采用离线分析的方式。通过采集数据工具将日志数据导入到数据分析平台里。但面对海量数据,传统的ETL工具往往彻底失效,主要原因是数据格式转换的开销太大,在性能上无法满足海量数据的采集需求。互联网企业的海量数据采集工具,有Facebook开源的Scribe、LinkedIn开源的Kafka、淘宝开源的Timetunnel、Hadoop的Chukwa等,均可以满足每秒数百MB的日志数据采集和传输需求,并将这些数据上载到Hadoop中央系统上。
根据大数据的数据存储量分为内存级别、BT级别、海量级别三种
内存级别主要是数据量最大值在集群内存的范围内。不要小看内存的容量,Facebook的缓存在内存里的数据就有320TB之多,而目前PC服务器的内存也可以超过一百个G。因此对于内存级别采用内存数据库,可以将热点数据库常驻在内存里面,从而获得迅速的分析能力,对于实时业务分析非常合适。下图就是是一种实际可行的MongoDB分析架构。
MongDB大集群在稳定性上面存在一些问题,会发生一些周期性的堵塞以及同步失败,但依然可以作为一种潜力很大而且可以用于告诉数据处理的NoSQL。
BT级别主要是针对那些内存太大的数据量,一般可以将其放到传统的BI产品和专门设计的数据库里面进行分析。目前主流的BI产品都有支持TB级以上的数据分析方案。种类繁多,就不具体列举了。
海量级别指的是对于数据库和BI产品已经完全失效或者成本过高的数据量。海量数据级别的优秀企业级产品也有很多,但基于软硬件的成本原因,目前大多数互联网企业采用Hadoop的HDFS分布式文件系统来存储数据,并使用MapReduce进行分析。本文稍后将主要介绍Hadoop上基于MapReduce的一个多维数据分析平台。
CIO之家 www.ciozj.com 公众号:imciow