我有一个HDP 2.4群集,其中包含以下服务/组件:
我已经连续几天都在寻找这个,并且会感谢一些帮助。我有以下两个问题:
非常感谢您提供的任何帮助!
答案 0 :(得分:3)
如果您正在编写一个利用一个或多个HDP服务的应用程序,我建议您更新每个服务的log4j.properties文件,以匹配您所需的日志记录级别。最好的方法是使用Ambari Admin UI。要编辑服务的log4j.properties,请执行以下步骤:
- 单击控制板左侧的任何一项服务。
- 点击“服务摘要”页后,点击屏幕顶部的“配置”标签。
- 单击版本历史记录时间轴下的“高级”选项卡,找到“高级”属性集,然后搜索log4j.properties条目。如果不这样做,您可以在屏幕右上角的搜索栏中搜索“log4j”,Ambari将突出显示相关设置。
醇>
请参阅here以获取详细说明HDFS服务的log4j.properties文件示例的图像。
请记住,每个服务的日志文件只会捕获您的应用程序与该服务仅之间的交互。如果您使用的是Java,我个人建议在您的应用程序中添加log4j实例;如果您不知道如何执行此操作,我建议您按照this tutorial(在this SO question上找到)来正确设置。根据应用程序调用每个服务的API的方式,您可以查询命令的输出并将其记录到您自己的日志文件中。
在一个集中位置查看日志文件方面,您有两个选择:
我将概述以下两个选项。
我会冒险使用“更简单”的方法(我的意思是要求您付出最少的努力)将您的群集升级到HDP 2.5。更新后的Hortonworks数据平台为Ambari带来了最新版Ambari 2.4的大修。此版本包括Ambari Infra,它允许您查看所有日志文件,按日志级别进行过滤,并通过Ambari Log Search执行图形和复杂功能。
如果您无法升级整个群集,另一个选择是从Hortonworks网站获取Ambari 2.4存储库并手动安装。 Hortonworks的一位代表告诉我,Ambari 2.4可以毫无问题地在HDP 2.4上运行,所以这可能是一个可行的替代方案......虽然我建议你在尝试之前先自己检查一下Hortonworks!
Ambari日志搜索的唯一缺点是您无法在搜索中包含您的应用程序日志 - Ambari日志搜索仅适用于Hadoop服务。
如果您不想升级到Ambari 2.4,那么其他选项看起来有点稀缺。我个人不知道任何开源解决方案,一些粗略的Googling返回的结果很少。 Apache Chukwa和Cloudera's Scribe都应该解决Hadoop中的分布式日志收集问题,但都是9岁。同样的过程还有an older Hortonworks process for log collection that leverages Flume,值得一看。 This SO thread还建议Flume用于其他情况。可能值得考虑使用Flume从每个服务器/var/log/
目录收集日志。
此解决方案的优点是您的应用程序日志文件可以作为源包含在Flume工作流程中,并包含在其他HDP服务日志中(取决于您决定放置它们的位置)。
答案 1 :(得分:0)
如果您使用HDP,请查看本文(演示如何配置log4j):
How to control size of log files for various HDP components?
这个也非常有用(显示如何使用log4j压缩HDFS日志):
How to rotate as well as zip the NameNode logs using log4j extras feature?