![]() |
1
4
不幸的是,没有一种可配置的方法来防止这种情况。作业的每个任务都会在history/userlogs中得到一个目录,其中包含stdout、stderr和syslog任务日志输出文件。保留时间将有助于防止太多的时间积累,但您必须编写一个良好的日志旋转工具来自动对它们进行柏油。 我们在写入nfs装载时也遇到了这个问题,因为所有节点都将共享相同的history/userlogs目录。这意味着一个有30000个任务的工作就足以打破fs。当集群实际开始处理大量数据时,本地日志记录实际上是一种方法。 如果您已经在本地登录,并且在不到一周的时间内仍然能够在一台计算机上处理30000多个任务,那么您可能正在创建太多的小文件,从而导致为每个作业生成太多映射程序。 |
![]() |
2
5
我也有同样的问题。在启动hadoop之前,设置环境变量“hadoop_root_logger=warn,console”。
|
![]() |
3
2
配置hadoop以使用log4j并设置
就像上面描述的 this wiki page 不起作用? 看着 LogLevel source code ,似乎hadoop使用commons日志记录,默认情况下它将尝试使用log4j,如果log4j不在类路径上,则使用jdk日志记录。 顺便说一下,可以在运行时更改日志级别,查看 commands manual . |
![]() |
4
1
根据文件, Hadoop uses log4j for logging . 也许你找错地方了… |
![]() |
5
0
我也遇到了同样的问题…配置单元会产生大量日志,当磁盘节点已满时,将无法启动更多容器。在yarn中,当前没有禁用日志记录的选项。一个特别大的文件是syslog文件,在我们的例子中,它在几分钟内生成了几GB的日志。 在“yarn site.xml”中将属性yarn.nodemanager.log.retain-seconds配置为较小的值没有帮助。无法将“yarn.nodemanager.log dirs”设置为“file:///dev/null”,因为需要一个目录。删除writing ritght(chmod-r/logs)也不起作用。 一种解决方案是使用“空黑洞”目录。在这里检查: https://unix.stackexchange.com/questions/9332/how-can-i-create-a-dev-null-like-blackhole-directory 另一个解决方案是在运行作业之前禁用日志。例如,在配置单元中,通过以下行启动脚本是可行的:
|
![]() |
MattWeiler · 项目使用Log4j2,但依赖项使用Log4j 7 年前 |
|
user5444681 · 如何在包覆面提取容器中使用log4j2? 7 年前 |
![]() |
Allan Peres · Log4j不创建日志文件,只创建控制台 7 年前 |
![]() |
mtkarakaya · 替换包含环境变量的路径字符串 7 年前 |
![]() |
m.francia · 如何配置log4j以发送wowza日志? 7 年前 |
![]() |
khaled · 在Robot框架中,如何在执行期间登录到控制台 7 年前 |
![]() |
user2953788 · log4j。性能过滤火花和纱线原木 7 年前 |