4

谁能指出我的参考资料或提供有关 Facebook、Yahoo、Google 等公司如何执行他们为运营特别是 Web 分析执行的大规模(例如多 TB 范围)日志分析的高级概述?

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

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

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

4

3 回答 3

5

不幸的是,没有一种适合所有人的答案。

我目前正在使用 Cascading、Hadoop、S3 和 Aster Data 通过 AWS 内部的分阶段管道每天处理 100 次演出。

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

请记住,像 HBase 和 Hypertable 这样的工具是键/值存储,所以不要在没有 MapReduce/Cascading 应用程序的帮助下执行临时查询和连接来执行带外连接,这是一种非常有用的模式。

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

http://www.asterdata.com/

http://www.cascading.org/

于 2009-04-28T17:09:57.650 回答
5

Hadoop:O'Reilly 的权威指南一书有一章讨论了 hadoop 如何在两个现实世界的公司中使用。

http://my.safaribooksonline.com/9780596521974/ch14

于 2009-06-18T20:22:44.440 回答
4

请查看Google的论文解释数据:使用 Sawzall 进行并行分析。这是一篇关于 Google 用于日志分析的工具的论文。

于 2009-04-27T19:42:34.907 回答