从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
我尝试使用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 / *]。但是,我不知道如果使用此命令会对集群产生什么影响(我担心会因为这个原因而无法访问某个地方)。

有什么问题吗?或者有个好主意来解决这个问题(我不想重新启动集群)。

最佳答案

HDFS目录/tmp/logs是用于Mapreduce 日志聚合的默认位置;还有另一个关键属性是...



https://fr.hortonworks.com/blog/simplifying-user-logs-management-and-access-in-yarn/

一个典型的集群会在5到30天后清除MR日志,具体取决于 Activity (可能还有合规性要求)。如果您从不清除任何东西,那么您早晚必将撞墙……!

好的,如果您确实需要手动清除这些东西,可以这样做。从清除中残酷地切换是什么意思,什么也没有,什么也没有。

对于上述博客,您可以注意到/tmp/logs必须将访问权限设置为1777,即“用户读/写/执行,
组读/写/执行,其他读/写/执行和粘滞位设置”(就像/tmp一样);并且其组所有权必须与运行NodeManager服务的服务帐户的主要组匹配。

换句话说:任何人都可以在其中创建子目录;粘性位和组所有权的技巧意味着YARN和创建者都可以读取/写入/清除内部的日志文件-但没有其他人。

现在有趣的部分是,新用户启动其第一个MapReduce作业将自动创建一个以他/她命名的新子目录,以及一个logs/子目录; HiveServer2在hive服务帐户下运行的第一个查询会自动创建hive/hive/logs/子目录。
=>如果删除这些子目录,则将在下次运行时自动重新创建它们
=>但是,如果在HS2 session 正在运行查询时删除它们,那么当尝试将其日志推送到HDFS时,该查询可能会崩溃并烧毁!

关于hadoop - Hadoop:删除/tmp/logs/hive/logs/hive下的文件夹时会发生什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45451852/

10-12 06:26