如果我将zookeeper用作工作队列并连接到个人消费者/工作人员。你会建议什么作为一个良好的分布式设置来记录这些工人'活动?
假设如下:
1)在任何时候我们都可以使用一台装有hadoop集群的单台计算机。系统将根据需要自动升级和降级,但有很多停机时间,只需要一台计算机。
2)我只需要能够访问所有工作日志而无需访问工作人员所在的单个机器。请记住,当我阅读其中一个日志时,机器很可能会被终止并且很久就会消失。
3)我们需要轻松访问日志,即能够进行cat / grep和tail,或者以更加SQL的方式 - 我们需要实时查询和监视输出的能力在短时间内实时。 (即tail -f /var/log/mylog.1)
我感谢您的专家意见!
感谢。
答案 0 :(得分:1)
您是否看过使用Flume,chukwa或scribe - 确保您的水槽等流程可以访问您尝试聚合到中央服务器上的日志文件。
水槽参考: http://archive.cloudera.com/cdh/3/flume/Cookbook/
chukwa: http://incubator.apache.org/chukwa/docs/r0.4.0/admin.html
希望它有所帮助。答案 1 :(得分:0)
Fluentd日志收集器刚刚发布了其WebHDFS插件,它允许用户立即将数据流式传输到HDFS。它易于管理,非常易于安装。
当然,您可以直接从应用程序导入数据。这是一个针对Fluentd发布日志的Java示例。当Fluentd守护程序关闭时,Fluentd的Java库非常聪明,可以在本地缓冲。这减少了数据丢失的可能性。
还提供高可用性配置,这基本上使您可以拥有集中式日志聚合系统。