我想处理日志从我的Web服务器,因为它进来使用Hadoop(亚马逊弹性mapreduce).我谷歌的帮助,但没有任何有用的.我想知道,如果这可以做到或有任何替代方法来做到这一点.
fumotvh31#
Hadoop通常以离线方式使用,所以我宁愿定期处理日志。在我之前参与的一个项目中,我们让服务器生成每小时轮换一次的日志文件(每小时x:00)。我们有一个每小时运行一次的脚本(每小时x:30),将文件上传到HDFS(那些还没有的文件)。然后,您可以在Hadoop中根据需要运行作业来处理这些文件。我相信还有更好的实时替代方案。
0x6upsns2#
Hadoop不用于真实的处理。但它可以用于按小时处理日志,可能会落后一个小时,这是接近实时的。我想知道什么是处理日志的需要,因为它来了。
guz6ccqo3#
您可以尝试使用Flume作为日志收集器,并将它们存储在S3中进行批处理:http://www.cloudera.com/blog/2011/02/distributed-flume-setup-with-an-s3-sink/
z9ju0rcb4#
如果你想要真正的实时处理,你可能想看看Twitter's Storm,它是开源的,托管在GitHub. Tutorial here上。它看起来像是used in production在大公司。在这一点上,我自己并不使用Storm,实际上我做了一些类似于问题和回答中提到的事情:1.使用Apache记录事件(使用rotelogs每15/30分钟更改一次日志文件)1.偶尔将它们上传到S31.向现有Hadoop集群添加新步骤(在Amazon EMR上)有了Hadoop,你可以通过在集群上运行批处理来接近实时,只需要添加一个新的作业,但不是真正的实时,你需要Storm或类似的东西。
4条答案
按热度按时间fumotvh31#
Hadoop通常以离线方式使用,所以我宁愿定期处理日志。
在我之前参与的一个项目中,我们让服务器生成每小时轮换一次的日志文件(每小时x:00)。我们有一个每小时运行一次的脚本(每小时x:30),将文件上传到HDFS(那些还没有的文件)。然后,您可以在Hadoop中根据需要运行作业来处理这些文件。
我相信还有更好的实时替代方案。
0x6upsns2#
Hadoop不用于真实的处理。但它可以用于按小时处理日志,可能会落后一个小时,这是接近实时的。我想知道什么是处理日志的需要,因为它来了。
guz6ccqo3#
您可以尝试使用Flume作为日志收集器,并将它们存储在S3中进行批处理:
http://www.cloudera.com/blog/2011/02/distributed-flume-setup-with-an-s3-sink/
z9ju0rcb4#
如果你想要真正的实时处理,你可能想看看Twitter's Storm,它是开源的,托管在GitHub. Tutorial here上。
它看起来像是used in production在大公司。
在这一点上,我自己并不使用Storm,实际上我做了一些类似于问题和回答中提到的事情:
1.使用Apache记录事件(使用rotelogs每15/30分钟更改一次日志文件)
1.偶尔将它们上传到S3
1.向现有Hadoop集群添加新步骤(在Amazon EMR上)
有了Hadoop,你可以通过在集群上运行批处理来接近实时,只需要添加一个新的作业,但不是真正的实时,你需要Storm或类似的东西。