我想定期(每小时)将我的应用程序日志加载到 Cassandra 中,以便使用 pig 进行分析。
这通常是如何完成的?有没有专注于此的项目?
我看到mumakil通常用于批量加载数据。我可以编写一个围绕它构建的 cron 作业,但希望能写出比我准备的作业更强大的东西。
如果可以的话,我也愿意修改应用程序以另一种格式存储数据(如系统日志或直接存储到 Cassandra)。虽然在那种情况下,如果 Cassandra 不可用,我会担心数据丢失。
我想定期(每小时)将我的应用程序日志加载到 Cassandra 中,以便使用 pig 进行分析。
这通常是如何完成的?有没有专注于此的项目?
我看到mumakil通常用于批量加载数据。我可以编写一个围绕它构建的 cron 作业,但希望能写出比我准备的作业更强大的东西。
如果可以的话,我也愿意修改应用程序以另一种格式存储数据(如系统日志或直接存储到 Cassandra)。虽然在那种情况下,如果 Cassandra 不可用,我会担心数据丢失。
如果您打算使用 Flume,则需要编写一个自定义的 Flume 接收器(不难)。您可以在https://github.com/geminitech/logprocessing上对其进行建模。
如果您想使用 Pig,我同意您应该使用 HDFS(或 S3)的另一张海报。Hadoop 旨在与块巨大的块存储一起工作。这可以防止您因执行大量磁盘查找和网络 IO 而获得糟糕的 IO 性能。虽然您可以将 Pig 与 Cassandra 一起使用,但您会遇到 Cassandra 数据模型的问题,并且性能会差很多。
但是,如果您真的想使用 Cassandra 并且您对 Flume 没有死心,我建议您使用 Kafka 和 Storm。
我使用 Storm 将日志文件加载到 Cassandra 的工作流程是:
您应该考虑使用Flume将它们加载到 HDFS 中,因为这些项目就是为此目的而设计的。然后,您可以直接对您的非结构化/半结构化日志数据使用 Pig。