用于将日志文件加载到cassandra的堆栈

时间:2012-05-25 16:25:41

标签: cassandra apache-pig

我想定期(每小时)将我的应用程序日志加载到Cassandra中,以便使用pig进行分析。

这通常如何做?是否有专注于此的项目?

我看到mumakil通常用于批量加载数据。我可以写一个围绕着这个问题的cron工作,但我希望能找到比我工作更强大的东西。

如果可取的话,我也愿意修改应用程序以另一种格式(如syslog或直接向Cassandra)存储数据。虽然在那种情况下,如果Cassandra不可用,我会担心数据丢失。

2 个答案:

答案 0 :(得分:1)

如果你开始使用Flume,你需要编写一个自定义的Flume水槽(不是很难)。您可以在https://github.com/geminitech/logprocessing上对其进行建模。

如果您想使用Pig,我同意另一张海报,您应该使用HDFS(或S3)。 Hadoop的设计非常适用于块存储的块存储。这可以防止您通过大量磁盘搜索和网络IO获得可怕的IO性能。虽然你可以使用Pig和Cassandra,但是你会遇到Cassandra数据模型的麻烦,你的性能会更差。

但是,如果你真的想使用Cassandra并且你没有死在Flume,我建议使用Kafka和Storm。

我使用Storm将日志文件加载到Cassandra的工作流程是:

  1. Kafka收集日志(例如使用log4j appender)
  2. 使用storm-kafka
  3. 登录风暴群集
  4. 使用自定义Storm螺栓解析日志行并将其插入到Cassandra中(编写Storm bolt非常容易)。还有一个风暴cassandra螺栓已经可用。

答案 1 :(得分:0)

您应该考虑使用Flume将它们加载到HDFS,因为这些项目是为此目的而设计的。然后,您可以直接使用Pig来对付非结构化/半结构化的日志数据。