我想使用 Hadoop(Amazon Elastic mapreduce)处理来自我的 Web 服务器的日志。我搜索了帮助,但没有任何用处。我想知道这是否可以做到,或者有没有其他方法可以做到这一点。
问问题
690 次
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,实际上做了类似于问题和回复中提到的事情:
- 使用 Apache 记录事件(使用 rotatelogs 每 15/30 分钟更改一次日志文件)
- 每隔一段时间将它们上传到 S3
- 向现有 Hadoop 集群添加新步骤(在 Amazon EMR 上)
使用 Hadoop,您可以通过经常在集群上运行批处理并仅添加新作业来接近实时,但不是真正的实时。为此,您需要 Storm 或类似的东西。
于 2012-07-18T15:07:01.623 回答