2014-11-20 41 views
0

我有一个大的Spark群集(80台机器),而且我在运行我的作业(在大数据集上)时遇到问题。 为了调试这个,我需要看看每台机器上的Spark日志发生了什么,尤其是错误。寻找日志监控和远程复制机制

目前我需要ssh到每台机器(他们是GCE机器),并看看那里的特定文件。这是不可扩展的,我正在寻找更好的解决方案。

我想在每台机器上有一种代理,跟踪某个根文件夹,每隔X分钟一次,将其下的所有文件复制到某个远程位置(GCS)。

有没有这样的现有框架,还是我需要在这里发明轮子?

+0

您可以使用[Salt](http://www.saltstack.com/)。 Salt只是让你在一组机器上运行相同的命令。所以你基本上会要求salt执行你用来下载所有服务器上日志的命令。然后可以将salt命令添加为cron作业。 – Anant 2014-11-21 05:26:36

回答

1

FluentdLogstash可以完成将日志收集到中央位置(例如Elasticsearch)的工作。你可以看到Kibana,Hive(HDFS)或其他的日志。虽然这两个代理的功能都是相似的,但我建议使用Fluentd,因为它现在变得非常流行,因此谷歌将它用于Google Clould平台中的默认群集日志收集。在Kubernetes集群使用Fluentd,Elasticsearch和Kibana https://github.com/GoogleCloudPlatform/kubernetes/blob/master/contrib/logging/fluentd-ek/README.md

0

记录荚最后,我用简单的东西。我在所有工作人员中设置了一个cronjob,将文件复制到云中的存储桶中。这样,存储区包含所有位置的所有日志文件。但是,在这种情况下,我并不需要盐,因为我在所有工人中预安装了cron作业,并为所有这些GCE机器使用了启动脚本。