我想定期(每小时)将我的应用程序日志加载到cassandra中,以便使用pig进行分析。
这通常是如何做到的?是否有项目专注于此?
我看到mumakil通常用于批量加载数据。我可以写一个cron的工作建立在这一点上,但希望有比我的工作更强大的东西。
我也愿意修改应用程序,以另一种格式存储数据(如syslog或直接到cassandra),如果这是可取的。不过,在这种情况下,如果Cassandra不可用,我会担心数据丢失。
我想定期(每小时)将我的应用程序日志加载到cassandra中,以便使用pig进行分析。
这通常是如何做到的?是否有项目专注于此?
我看到mumakil通常用于批量加载数据。我可以写一个cron的工作建立在这一点上,但希望有比我的工作更强大的东西。
我也愿意修改应用程序,以另一种格式存储数据(如syslog或直接到cassandra),如果这是可取的。不过,在这种情况下,如果Cassandra不可用,我会担心数据丢失。
2条答案
按热度按时间798qvoo81#
如果你设置使用Flume,你需要写一个自定义FlumeFlume(不难)。你可以模仿它https://github.com/geminitech/logprocessing.
如果你想使用pig,我同意另一张海报,你应该使用hdfs(或s3)。hadoop被设计成可以很好地处理块很大的块存储。这可以防止由于执行大量磁盘查找和网络io而导致糟糕的io性能。虽然可以将pig与cassandra结合使用,但是cassandra数据模型会出现问题,而且性能会差得多。
然而,如果你真的想使用Cassandra,你不是死定在Flume,我建议使用Kafka和风暴。
我使用storm将日志文件加载到cassandra的工作流程是:
Kafka收集日志(例如,使用log4j appender)
日志进入风暴集群使用风暴Kafka
日志行被解析并插入到cassandra中,使用定制的风暴螺栓(编写风暴螺栓非常容易)。还有一个风暴Cassandra螺栓已经可用。
oewdyzsn2#
您应该考虑使用flume将它们加载到hdfs中,因为这些项目是为此而设计的。然后可以直接对非结构化/半结构化日志数据使用pig。