【问题标题】:what if I decommission one of datanode in the cluster which only has two datanodes?如果我停用集群中只有两个数据节点的数据节点怎么办?
【发布时间】:2014-03-07 04:10:17
【问题描述】:

我设置了一个 hdfs 集群,它有一个主节点(namenode)和两个从节点(datanode)

并且 dfs.replication 设置为“2”

所以每个block都会在两个slave中被复制,并且slave中的文件都是一样的。

我的问题是,如果我想停用两个从站中的一个,它总是显示“Decommission In Progress”,但没有文件被复制(通过使用 sar 监控网络)

所以我认为如果集群只有两个datanode,并且replication设置为“2”,我不能停用任何datanode,因为如果我停用任何一个节点,就会只剩下一个节点,所以文件无法复制 2.

你这么认为吗?

【问题讨论】:

  • 你的实验显示了什么?我们有复制计数为 2 的数据节点,并将以下属性“dfs.client.block.write.replace-datanode-on-failure.enable”设置为“false”,以免在节点故障时作业失败。

标签: hadoop hdfs


【解决方案1】:

我相信集群中的复制因子为 2,如果您停用了一个数据节点,那么 hadoop 将识别为一个数据节点的崩溃,并将继续使用数据节点。但是,将来如果您将该节点放回集群中,hadoop 将开始将文件复制到该节点。

所以你可以在集群中只有一个节点的复制因子为 2,它不会以任何方式妨碍 hadoop 的工作。

【讨论】:

  • 我认为在提交作业后,如果我停用了一个节点,那么它将按照您的说法工作。但是在完成这些作业后,如果提交了新作业,那么在提交过程中可能会出错,说“只有一个数据节点,复制因子为2”(有点像这样)......?如果我错了,请纠正我...
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 2013-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多