从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/