实施大规模日志文件分析

发布于 2024-07-17 09:02:17 字数 457 浏览 6 评论 0原文

任何人都可以向我指出参考资料或提供有关 Facebook、雅虎、谷歌等公司如何执行大规模(例如多 TB 范围)日志分析的参考信息或提供其为运营(尤其是网络分析)所做的大规模(例如,多 TB 范围)日志分析吗?

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

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

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

Can anyone point me to a reference or provide a high level overview of how companies like Facebook, Yahoo, Google, etc al perform the large scale (e.g. multi-TB range) log analysis that they do for operations and especially web analytics?

Focusing on web analytics in particular, I'm interested in two closely-related aspects: query performance and data storage.

I know that the general approach is to use map reduce to distribute each query over a cluster (e.g. using Hadoop). However, what's the most efficient storage format to use? This is log data, so we can assume each event has a time stamp, and that in general the data is structured and not sparse. Most web analytics queries involve analyzing slices of data between two arbitrary timestamps and retrieving aggregate statistics or anomalies in that data.

Would a column-oriented DB like Big Table (or HBase) be an efficient way to store, and more importantly, query such data? Does the fact that you're selecting a subset of rows (based on timestamp) work against the basic premise of this type of storage? Would it be better to store it as unstructured data, eg. a reverse index?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一口甜 2024-07-24 09:02:17

不幸的是,没有一刀切的答案。

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

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

请记住,HBase 和 Hypertable 等工具是键/值存储,因此,如果没有 MapReduce/Cascading 应用程序的帮助来执行带外联接,请勿执行即席查询和联接,这是一种非常有用的模式。

坦白说,我是 Cascading 项目的开发人员。

http://www.asterdata.com/

http://www.cascading.org/

Unfortunately there is no one size fits all answer.

I am currently using Cascading, Hadoop, S3, and Aster Data to process 100's Gigs a day through a staged pipeline inside of AWS.

Aster Data is used for the queries and reporting since it provides a SQL interface to the massive data sets cleaned and parsed by Cascading processes on Hadoop. Using the Cascading JDBC interfaces, loading Aster Data is quite a trivial process.

Keep in mind tools like HBase and Hypertable are Key/Value stores, so don't do ad-hoc queries and joins without the help of a MapReduce/Cascading app to perform the joins out of band, which is a very useful pattern.

in full disclosure, I am a developer on the Cascading project.

http://www.asterdata.com/

http://www.cascading.org/

浅忆 2024-07-24 09:02:17

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

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

The book Hadoop: The definitive Guide by O'Reilly has a chapter which discusses how hadoop is used at two real-world companies.

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

勿忘心安 2024-07-24 09:02:17

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

Have a look at the paper Interpreting the Data: Parallel Analysis with Sawzall by Google. This is a paper on the tool Google uses for log analysis.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文