【问题标题】:HDFS dfs.name.dir is out of free spaceHDFS dfs.name.dir 可用空间不足
【发布时间】:2019-02-21 07:13:13
【问题描述】:

Spark 应用程序抛出此错误:

> Cannot create directory
> /home/user/hdp/.sparkStaging/application_00000000_000. 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. Use "hdfs dfsadmin -safemode leave" to turn safe mode off.

所以我尝试了这个:hdfs dfs -df -h

Filesystem                                                          Size   Used  Available  Use%
hdfs://ip-xx-xx-xxx-xxx.xxxxxxxx.xx-xxxx-x.compute.internal:xxxx  58.5 G  5.0 G     46.5 G    9%

因为它有足够的可用空间,我尝试了 df -h,发现 ${dfs.name.dir} = /xx2/namenode 消耗了 /xxx/xxxx3 中的所有可用空间 (27G)

Filesystem      Size  Used Avail Use% Mounted on
xxxxxxxx        3.9G   72K  3.9G   1% /xxx
xxxxx           3.9G     0  3.9G   0% /xxx/shm
/xxx/xxxx1      9.8G  3.8G  5.9G  40% /
/xxx/xxxx2      5.0G   65M  5.0G   2% /xx1
/xxx/xxxx3       27G   27G   94M 100% /xx2

我不知道如何为该目录正确释放一些空间。

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

    您能否检查hdfs-default.xml 中的safemode 阈值

    dfs.safemode.threshold.pct
    dfs.namenode.safemode.threshold-pct
    

    尝试增加阈值,然后使用下面的方法离开安全模式。之后,您可以在找到导致问题的害群之马文件后恢复更改

    hdfs dfsadmin -safemode leave
    

    您可以检查本地文件(/var/log/..),因为 hadoop 在系统的磁盘空间之上工作。还可以检查hadoop.tmp.dir 中提到的目录。在所有数据节点和名称节点上使用 hadoop fs -rmr 进行刷新

    【讨论】:

    • dfs.safemode.threshold.pct 和 dfs.namenode.safemode.threshold-pct 未在 hdfs-site.xml 中指定
    • 本地文件不超过 1GB。我认为 hadoop 中的编辑日志在 ${dfs.name.dir} 中占用了大量空间。在 hdfs 中设置多少编辑/更新日志的上限可能已经解决了这个问题。我不确定。我决定重新启动 emr,因为当我停止它时我无法启动 hdfs。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2023-02-22
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    相关资源
    最近更新 更多