平衡器如何在hdfs中工作?

yqkkidmi  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(332)

balancer以迭代方式将副本从利用率较高的数据节点移动到利用率较低的数据节点。
这是否会影响机架唤醒的概念?
例如,我将三台机器放置在两个机架中,数据是按照机架感知的概念放置的。
如果我向集群添加一台新机器并运行balancer命令,会发生什么?

3b6akqbq

3b6akqbq1#

机架感知和数据位置是一个概念。hdfs平衡器只关心数据节点的使用情况。
如果您有3台机器,默认情况下有3个副本,那么可以保证每台机器有1个副本,因此有2个机架,实际上可以保证有机架位置。
无论如何,节点位置比机架感知性能更好。
如果节点之间有10gb的集群内速度,那么数据局部性是一个没有实际意义的问题。这就是为什么aws仍然可以合理地处理s3中的数据,例如,在数据局部性处理不可用的地方

llmtgqce

llmtgqce2#

如果您的问题是如何使用负载平衡:当一个节点的负载高于其阈值水平时,负载平衡有助于在空闲节点上平均分配负载。
现在,如果对于每个数据节点,节点的已用空间与节点的总容量之比(称为节点利用率)与集群的已用空间与集群的总容量之比(集群利用率)相差不超过阈值,则认为集群是平衡的。
当您在运行时应用负载平衡时,它被称为动态负载平衡,根据执行节点的选择,这可以通过直接或迭代的方式来实现:
在迭代方法中,通过几个迭代步骤确定最终的目的节点。
在直接方法中,通过一个步骤选择最终的目的地节点。
机架感知
机架感知可防止在整个机架发生故障时丢失数据,并允许在读取文件时利用多个机架的带宽。
在多机架群集上,块复制是按照一个策略维护的,即在一个节点上放置的副本不超过一个,在同一机架上放置的副本不超过两个,并且限制用于块复制的机架数量应始终小于块副本的总数量。
例如,
创建新块时,第一个复制副本放在本地节点上,第二个复制副本放在不同的机架上,第三个复制副本放在本地机架的不同节点上。
重新复制块时,如果现有副本的数量是一个,请将第二个副本放在不同的机架上。
当现有副本数为两个时,如果两个副本在同一机架上,则将第三个副本放在不同的机架上;
对于读取,name节点首先检查客户机的计算机是否位于集群中。如果是,则块位置从关闭数据节点返回给客户端。
它最大限度地降低了写入成本和读取速度。

相关问题