从Cloudera Manager安装CDH ver 5.3。
我的群集使用配置单元,其他服务设置如下:
・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
我尝试使用hdfs命令删除/tmp/logs/hive/logs/hive/xxxxxxx.xxxxxxx
,但文件夹大小太大而无法删除。
偶hadoop fs -ls /tmp/logs/hive/logs/hive/
没有用......(hdfs没有答案。(大小差不多是3TB))
所以相反,我决定使用[Hadoop fs -rmr / tmp / logs / hive / logs / hive / *]。但是,如果我使用这个命令,我不知道我的集群会发生什么(我担心某个地方无法访问,因为这样)。
有什么问题吗?或者有一个好主意来处理这个问题(我不想重启我的集群)。
答案 0 :(得分:0)
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/
子子目录;并且hive
服务帐户下由HiveServer2运行的第一个查询会自动创建hive/
和hive/logs/
子目录。
=>如果删除这些子目录,则会在下次运行时自动重新创建它们
=>但是如果你删除它们 而 HS2会话正在运行查询,那么当尝试在HDFS上推送其日志时,该查询可能会崩溃并烧毁!