我正在使用cloudera的VM来运行hadoop。 99%的dfs空间用完了。所以我需要删除文件,但要删除文件,需要关闭安全模式。
我尝试使用以下命令关闭安全模式,
sudo -u hdfs hdfs dfsadmin -safemode leave
它说已关闭,但由于空间不足,它会自动打开它。当我尝试删除文件时,它表示自安全模式打开后,您无法删除文件。
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)
要删除文件,需要关闭安全模式。要关闭安全模式,我需要释放空间!那么如何清理文件以提供更多空间呢?
答案 0 :(得分:2)
重要的是要知道HDFS只使用硬盘的磁盘空间。因此,如果在单个节点上系统HDFS已填满,则本地磁盘也已满。
尝试通过删除非hdfs文件来清理文件(例如/ var / log /...)
答案 1 :(得分:1)
您可以尝试通过将以下选项临时设置为低值来降低触发安全模式的阈值:
dfs.safemode.threshold.pct
dfs.namenode.safemode.threshold-pct
此外,NameNode可能在离开后不会立即返回安全模式。就我而言,我能够通过将hdfs dfsadmin -safemode leave
和hdfs dfs -rm
命令链接在一起来清理内容,例如。
sudo su hdfs
hdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete