Hadoop:在/ tmp / logs / hive / logs / hive下删除文件夹时会发生什么

时间:2017-08-02 05:04:41

标签: hadoop hive

从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 / *]。但是,如果我使用这个命令,我不知道我的集群会发生什么(我担心某个地方无法访问,因为这样)。

有什么问题吗?或者有一个好主意来处理这个问题(我不想重启我的集群)。

1 个答案:

答案 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日志,具体取决于活动(以及合规性要求)。如果你从来没有清除过任何东西,那么你迟早会遇到一堵墙......!


好的,如果你真的需要手动清除那些东西 en masse ,你就可以做到。不管怎么说,从清除中彻底切换是一种有点荒谬的事情 - 一切都没有清除 - 但是无论如何。

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

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

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