2

我想使用 Hadoop(Amazon Elastic mapreduce)处理来自我的 Web 服务器的日志。我搜索了帮助,但没有任何用处。我想知道这是否可以做到,或者有没有其他方法可以做到这一点。

4

4 回答 4

1

Hadoop 通常以离线方式使用。所以我宁愿定期处理日志。

在我之前参与的一个项目中,我们让我们的服务器生成每小时轮换的日志文件(每小时在 x:00)。我们有一个每小时运行的脚本(在 x:30 每小时)将文件上传到 HDFS(那些还不存在的文件)。然后,您可以在 Hadoop 中尽可能频繁地运行作业来处理这些文件。

我相信也有更好的实时替代方案。

于 2010-03-08T20:09:51.097 回答
1

Hadoop 不用于实时实时处理。但它可用于每小时处理日志,可能晚一小时,接近实时。我想知道处理日志的需要是什么。

于 2010-07-11T04:18:14.523 回答
0

您可以尝试使用 Flume 作为日志收集器并将它们存储在 S3 中以进行批处理:

http://www.cloudera.com/blog/2011/02/distributed-flume-setup-with-an-s3-sink/

于 2012-06-26T20:02:35.940 回答
0

如果您想要真正的实时处理,您可能需要查看Twitter 的 Storm,它是开源的并托管在 GitHub 上。教程在这里

看起来它正在大公司的生产中使用。

关于这一点,我自己不使用 Storm,实际上做了类似于问题和回复中提到的事情:

  1. 使用 Apache 记录事件(使用 rotatelogs 每 15/30 分钟更改一次日志文件)
  2. 每隔一段时间将它们上传到 S3
  3. 向现有 Hadoop 集群添加新步骤(在 Amazon EMR 上)

使用 Hadoop,您可以通过经常在集群上运行批处理并仅添加新作业来接近实时,但不是真正的实时。为此,您需要 Storm 或类似的东西。

于 2012-07-18T15:07:01.623 回答