假设我有一个包含多个机架的hdfs集群(v2.0.5版),但它最初不是用机架感知设置的。数据已使用默认的3x复制加载到其中。如果我现在将hdfs配置为机架感知,那么一个块的三个副本很可能位于同一机架上,这不是我想要的。如果我的集群已经平衡,那么运行hdfs均衡器是否会强制执行块复制策略并适当地将块洗牌,即一个机架上有一个块,另一个机架上有两个块?从我所读到的信息来看,如果集群是平衡的,那么它将简单地退出这个过程。如果没有,如何强制hdfs将所需的块重新复制到单独的机架上?
wfypjpf41#
如果您更改机架配置,使您现在有两个机架,而您只有一个机架,则平衡器将自动确定同一机架上具有所有副本的块需要重新平衡。换句话说,当机架配置更改时,它不再认为集群是平衡的(除非在机架配置更改后,块奇迹般地位于正确的位置)。
1条答案
按热度按时间wfypjpf41#
如果您更改机架配置,使您现在有两个机架,而您只有一个机架,则平衡器将自动确定同一机架上具有所有副本的块需要重新平衡。换句话说,当机架配置更改时,它不再认为集群是平衡的(除非在机架配置更改后,块奇迹般地位于正确的位置)。