hadoop - HDP 2.4,如何在一个文件中使用水槽收集hadoop mapreduce日志以及最佳实践

标签 hadoop logging mapreduce bigdata

我们正在使用HDP 2.4,并且有许多以各种方式(java MR / Hive等)编写的map reduce作业。日志在应用程序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 /日志搜索0.5.0 / Flume 1.5.2.2.4 )。

最佳答案

当它们已经在HDFS上时,Flume无法收集日志。

为此,您需要在指向已配置的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存储和搜索日志。

关于hadoop - HDP 2.4,如何在一个文件中使用水槽收集hadoop mapreduce日志以及最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789992/

相关文章:

java - logback 以编程方式创建一个新的日志实例

c# - 如何格式化 NLog 异常输出以获得行分隔符?

java - 记录到tomcat上的文件

map - map 阶段结束后停止Hadoop

hadoop - 在 MapReduce 作业中先运行 Combiner 或 Partitioner

hadoop - hadoop中local和yarn的区别

sql - 从另一个表创建临时表,包括配置单元中的分区列

sql - 只需从配置单元表中获取列名

Hadoop Mapreduce MultipleOutputs 输出控制台

hadoop - 运行 "hadoop version"命令时找不到文件/命令。 Hadoop安装