从 Cloudera Manager 安装 CDH 5.3 版。
我的集群使用 hive,其他服务设置是这样的:
・yarn.nodemanager.remote-app-log-dir=/tmp/logs ・yarn.nodemanager.remote-app-log-dir-suffix=logs ・replication setting is 2
我在删除/tmp/logs/hive/logs/
.
尤其/tmp/logs/hive/logs/hive
我尝试/tmp/logs/hive/logs/hive/xxxxxxx.xxxxxxx
使用 hdfs 命令删除,但文件夹太大而无法删除。
甚至hadoop fs -ls /tmp/logs/hive/logs/hive/
没有工作......(hdfs没有回答。(大小几乎是3TB))
因此,我决定使用 [Hadoop fs -rmr /tmp/logs/hive/logs/hive/*]。但是,我不知道如果我使用这个命令我的集群会发生什么(我担心某个地方将无法访问,因为这个)。
有什么问题吗?或者有一个好主意来处理这个问题(我不想重启我的集群)。
HDFS 目录/tmp/logs
是 Mapreduce日志聚合的默认位置;还有另一个关键属性是......
yarn.log-aggregation.retain-seconds
: 在删除聚合日志之前等待多长时间,-1 或负数禁用聚合日志的删除。
需要小心,不要将此值设置得太小,以免给分布式文件系统带来负担。
https://fr.hortonworks.com/blog/simplifying-user-logs-management-and-access-in-yarn/
典型的集群会在 5 到 30 天后清除 MR 日志,具体取决于活动(以及合规性要求)。如果你从不清除任何东西,那么你迟早会撞墙......!
对于上面的博客文章,您可以注意到/tmp/logs
必须将访问权限设置为 1777,即“用户读/写/执行、组读/写/执行、其他读/写/执行和粘滞位设置”(就像/tmp
);并且其组所有权必须与运行 NodeManager 服务的服务帐户的主要组匹配。
换句话说:任何人都可以在那里创建子目录;粘性位和组所有权技巧意味着 YARN 和创建者都可以读/写/清除其中的日志文件——但其他人不能。
现在有趣的部分是,新用户启动其第一个 MapReduce 作业将自动创建一个以他/她命名的新子目录,以及一个logs/
子子目录;并且 HiveServer2 在hive
服务帐户下运行的第一个查询会自动创建hive/
和hive/logs/
子目录。
=> 如果您删除这些子目录,它们将在下次运行时自动重新创建
=> 但是如果您在HS2 会话运行查询时删除它们,那么当尝试将其日志推送到 HDFS 时,该查询可能会崩溃并烧毁!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句