我们正在使用HDP 2.4并且有许多以各种方式编写的map reduce工作(java MR / Hive /等)。日志在应用程序ID下的hadoop文件系统中收集。我想收集应用程序的所有日志并附加在单个文件(一台机器的hdfs或OS文件)中,以便我可以轻松地在一个位置分析我的应用程序日志。另请告诉我在HDP 2.4中实现的最佳方法(堆栈版本信息=> HDFS 2.7.1.2.4 / YARN 2.7.1.2.4 / MapReduce2 2.7.1.2.4 / Log Search 0.5.0 / Flume 1.5.2.2。 4)。
答案 0 :(得分:0)
Flume在已经使用HDFS后无法收集日志。
为了做到这一点,您需要在指向配置的yarn.log.dir
的所有NodeManager上运行Flume代理,并以某种方式从本地OS文件路径中解析出应用程序/容器/尝试/文件信息。
我不确定收集到“单个文件”的效果如何,因为每个容器至少生成5个不同信息的文件,但是YARN日志聚合已经这样做了。这只是not in a readable file format in HDFS unless you are using Splunk/Hunk, as far as I know
替代解决方案包括将这些文件索引到Solr或Elasticsearch等实际搜索服务中,我建议通过HDFS存储和搜索日志