无法从 dfs 中删除文件,因为安全模式已开启

NEO*_*NEO 5 hadoop hdfs cloudera

我正在使用 cloudera 的 VM 来运行 hadoop。99% 的 dfs 空间已用完。所以我需要删除文件,但要删除文件,需要关闭安全模式。

我尝试使用以下命令关闭安全模式,

sudo -u hdfs hdfs dfsadmin -safemode leave
Run Code Online (Sandbox Code Playgroud)

它说它已关闭,但由于空间不足,它会自动打开它。当我尝试删除文件时,它说由于安全模式已打开,您无法删除文件。

SafeModeException: Cannot create directory /user/cloudera/.Trash/Current. Name node is in safe mode. Resources are low on NN. Please add or free up more resources then turn off safe mode manually. NOTE: If you turn off safe mode before adding resources, the NN will immediately return to safe mode.. (error 403)
Run Code Online (Sandbox Code Playgroud)

要删除文件,需要关闭安全模式。要关闭安全模式,我需要释放空间!那么如何清理文件以提供更多空间呢?

Sha*_*cko 5

您可以尝试通过暂时将以下选项设置为较低值来降低触发安全模式的阈值:

dfs.safemode.threshold.pct
dfs.namenode.safemode.threshold-pct
Run Code Online (Sandbox Code Playgroud)

此外,NameNode 在离开后可能不会立即返回安全模式。就我而言,我能够通过将hdfs dfsadmin -safemode leavehdfs dfs -rm命令链接在一起来清理东西,例如

sudo su hdfs
hdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete
Run Code Online (Sandbox Code Playgroud)


Nie*_*jes 2

重要的是要知道 HDFS 只是使用硬盘的磁盘空间。因此,如果在单节点系统上 HDFS 已满,则本地磁盘也已满。

尝试是否可以通过删除非 hdfs 文件来清理文件(例如 /var/log/...)