我有一个大型Spark集群(80台机器),我在运行我的作业时遇到了问题(在大数据集上)。 为了调试这个,我需要看看每台机器上的Spark日志会发生什么,特别是错误。
目前我需要ssh到每台机器(它们是GCE机器),并查看那里的特定文件。这不可扩展,我正在寻找更好的解决方案。
我希望每台机器上都有一种代理,可以跟踪某个根文件夹,每隔X分钟一次,将其下的所有文件复制到某个远程位置(GCS)。
是否有这样的现有框架,还是我需要在这里发明轮子?
答案 0 :(得分:1)
Fluentd或Logstash可以完成将日志收集到中心位置的工作(例如,Elasticsearch)。您可以在Kibana,Hive(HDFS)或其他内容中查看日志。尽管这两个代理的功能相似,但我建议使用Fluentd,因为它现在变得如此受欢迎,以至于谷歌将其用于Google Clould Platform中的默认群集日志集。
使用Fluentd,Elasticsearch和Kibana在Kubernetes群集中记录Pod https://github.com/GoogleCloudPlatform/kubernetes/blob/master/contrib/logging/fluentd-ek/README.md
答案 1 :(得分:0)
最终我用了一些简单的东西。我在所有工作人员中设置了一个cronjob,用于触发文件复制到云端的存储桶。这样,存储桶包含来自所有位置的所有日志文件。但是,在这种情况下我不需要salt,因为我在所有工作者中预先安装了cron作业,使用所有GCE机器的启动脚本。