gpt4 book ai didi

hadoop - 如何在不导致 Hadoop 进入安全模式的情况下限制 DataNode 上的磁盘使用?

转载 作者:可可西里 更新时间:2023-11-01 15:09:22 33 4
gpt4 key购买 nike

我有 3 个节点的 Hadoop 2.7.3 集群,可以描述如下:

  • 节点A:25gb,DataNode,NameNode
  • 节点 B:50gb,DataNode
  • 节点 C:25gb,DataNode

问题是节点 A 上的磁盘使用率很高(大约 95%)。我想实现的是限制磁盘使用率,使其永远不会超过 85%。
我尝试将 dfs.namenode.resource.du.reserved 属性设置为大约 3gb,但这并没有解决我的问题,因为只要可用磁盘空间低于该值,我的 Hadoop 就会立即进入安全模式.
我知道所有必需的资源都必须可供 NN 继续运行,并且只要任何冗余资源可用,NN 就会继续运行。
此外,我知道定义所需资源的 dfs.namenode.edits.dir.required 属性,但我认为让 NN 变得冗余而不是必需是个好主意。

所以我的问题和主题一样。我怎么能对 Hadoop 说:“嘿,听着。这是一个数据节点,在这里放任何你想要的东西,但如果磁盘使用率高于 85%,那么不要 panic ——停止在这里放任何东西并继续做你的事情在 DN 的其余部分。”?
我错过了什么吗?有可能吗?如果没有,那么你们会建议我做什么?

最佳答案

有一个名为 Namenode 资源检查器的进程,它扫描 Namenode 存储卷以获取可用的可用磁盘空间。每当可用空间低于 dfs.namenode.resource.du.reserved 属性中指定的值(默认 100MB)时,它会强制 Namenode 进入安全模式。

将其设置为 3GB 会期望此节点上有可用空间。但是 Datanode 会消耗所有可用的可用空间来存储数据,而不考虑 Namenode 的磁盘空间需求。

限制数据节点在这个特定节点上的磁盘使用,将此属性添加到 hdfs-site.xml

<property>
<name>dfs.datanode.du.reserved</name>
<value>3221225472</value>
<description>3GB of disk space reserved for non DFS usage.
This space will be left unconsumed by the Datanode.
</description>
</property>

根据您要求的阈值更改预留空间值。

关于hadoop - 如何在不导致 Hadoop 进入安全模式的情况下限制 DataNode 上的磁盘使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231297/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com