2009-04-27 123 views
4

任何人都可以点我参考或提供有关Facebook,雅虎,Google等公司如何执行大规模(如多TB范围)日志分析的高层次概述运营和特别是网络分析?实施大规模的日志文件分析

特别关注网络分析,我对两个密切相关的方面感兴趣:查询性能和数据存储。

我知道一般的方法是使用map reduce来将每个查询分布在集群上(例如使用Hadoop)。但是,什么是最有效的存储格式?这是日志数据,所以我们可以假设每个事件都有一个时间戳,而且通常数据是结构化的而不是稀疏的。大多数Web分析查询涉及分析两个任意时间戳之间的数据片,并检索该数据中的聚合统计信息或异常情况。

像大表(或HBase)这样的面向列的数据库是否是一种有效的存储方式,更重要的是查询这些数据?您是否选择行的子集(基于时间戳)是否违背了此类存储的基本前提?将它作为非结构化数据存储会更好吗,例如。反向指数?

回答

5

不幸的是,没有一个尺寸适合所有的答案。

我目前使用级联,Hadoop,S3和Aster数据来处理每天通过AWS内的分级管道传输100个Gig。

Aster Data用于查询和报告,因为它提供了一个SQL接口来处理由Hadoop上的级联进程清理和解析的海量数据集。使用Cascading JDBC接口,加载Aster Data是一个相当简单的过程。

请记住像HBase和Hypertable这样的工具是Key/Value商店,所以不要在没有MapReduce/Cascading应用程序的帮助下执行特别查询和连接来执行带外连接,这是一个非常有用的模式。

完全披露,我是Cascading项目的开发人员。

http://www.asterdata.com/

http://www.cascading.org/

+0

对于指向Aster Data的指针+1。从来没有听说过他们,他们看起来很有趣。 – Elad 2011-04-14 07:16:56