当M/R作业和日志错误发生时,我正在运行,而不是使作业失败。只有几个错误,但是作业是在有数百个节点的hadoop集群上运行的。如何在任务日志中搜索,而不必手动打开web (作业历史)中的每个任务日志?换句话说,如何在分散在集群中的M/R任务日志中自动搜索,这些日志存储在本地的每个节点中?
发布于 2015-01-30 01:37:36
边注: 2.0.0是旧的发霉(这是2.0的"beta“版本),你应该考虑升级到一个较新的堆栈(例如2.4,2.5 2.6)。
从2.0开始,Hadoop实现了所谓的“日志聚合”(尽管它不是您所想的那样)。日志只存储在HDFS上)。有许多命令行工具,您可以使用这些工具获取日志并对其进行分析,而不必通过UI。事实上,这比UI快得多。
有关更多信息,请访问这篇博客文章。
不幸的是,即使使用命令行工具,也无法同时获得所有任务日志并将其输送到类似grep之类的地方。您必须将每个任务日志作为单独的命令来获取。但是,这至少是可以编写的。
Hadoop社区正在开发一个更健壮的日志分析工具,它不仅可以将作业日志存储在HDFS上,还可以让您对这些日志执行搜索和其他分析。然而,这是一个工具仍然是一个出路。
发布于 2015-01-29 23:53:42
我们就是这样做的(大型互联网公司):我们确保只记录v条关键消息:但是对于那些消息,我们确实使用了System.err.println。请将每个跟踪器/还原器的总消息保持在几KB以内。
大多数消息仍然应该使用标准的log4j机制(这将进入系统日志区域)
发布于 2018-05-27 14:58:15
转到你的http://sandbox-hdp.hortonworks.com:8088/cluster/apps
在这里查找您感兴趣的执行的实例化,对于该条目单击History链接(在Tracking UI列中),
然后查找日志链接(在Logs列中),然后单击它
https://stackoverflow.com/questions/28224502
复制相似问题