2017-08-02 262 views
0

CDH ver 5.3从Cloudera Manager安装。【Hadoop】删除/ tmp/logs/hive/logs/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))

所以不是,我决定用[FS的Hadoop -rmr的/ tmp /日志/蜂巢/日志/蜂巢/ *]。但是,我不知道如果我使用这个命令会发生什么事(我担心某个地方无法访问,因此)。

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

+0

我的5美分:可能你需要在rmr命令中加上'-skipThrash'选项 – leftjoin

回答

0

HDFS目录/tmp/logs是用于Mapreduce的默认位置日志聚合;另外还有一个重要的财产这是...

yarn.log-aggregation.retain-seconds:多久之前, 删除汇总,日志,-1或负数禁用 删除聚集日志的等待。
需要注意,并且不要将 设置为太小,以免给分布式文件系统造成负担。

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

典型的群集清除MR登录后5至30天,这取决于活动(也许合规性要求)。如果你从不清除任何东西,那么迟早你肯定会撞墙......!


好的,如果你真的需要手动清除那些东西 整体,你可以这样做。从彻底转变到彻底转变 - 无论什么都不清除 - 但无论如何,这都有点荒谬。

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

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

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

+0

谢谢你的回答!所以,我决定不执行上面的命令。我会找到另一种减少数据量的方法。 –

相关问题