hadoop数据节点在添加新节点后使用了太多带宽

hadoop数据节点在添加新节点后使用了太多带宽,hadoop,bandwidth,Hadoop,Bandwidth,问题是:我在创建集群时有3个数据节点,几天前我又添加了两个数据节点 在我这样做之后,我运行了平衡器,平衡器很快就完成了,并说集群是平衡的 但我发现,一旦我将数据(约30MB)放入集群,数据节点就使用了大量带宽(约400Mbps)在旧数据节点和新数据节点之间发送和接收数据 有人能告诉我可能的原因吗 也许我描述的问题不是很清楚,我将向您展示两张图片(来自zabbix),hadoop-02是“旧数据节点”之一,hadoop-07是“新数据节点”之一。 等一下!!您的意思是,带宽在数据传输过程中被过度利

问题是:我在创建集群时有3个数据节点,几天前我又添加了两个数据节点

在我这样做之后,我运行了平衡器,平衡器很快就完成了,并说集群是平衡的

但我发现,一旦我将数据(约30MB)放入集群,数据节点就使用了大量带宽(约400Mbps)在旧数据节点和新数据节点之间发送和接收数据

有人能告诉我可能的原因吗

也许我描述的问题不是很清楚,我将向您展示两张图片(来自zabbix),hadoop-02是“旧数据节点”之一,hadoop-07是“新数据节点”之一。

等一下!!您的意思是,带宽在数据传输过程中被过度利用,或者DNs在放置数据后没有得到平衡,因为均衡器用于平衡群集中节点上的数据量

  • 如果你指的是网络流量。Hdfs使用写管道。假设复制因子为3,则数据流为

    客户端-->数据节点_1-->数据节点_2-->数据节点_3

    如果数据大小为30mb,则总流量为90mb,外加一点开销(用于连接创建、数据包头、数据包校验和)

  • 如果你指的是交通率。我相信目前Hdfs在客户端DN和DN之间没有带宽限制。它将使用尽可能多的带宽


  • 如果您注意到旧数据节点和新数据节点之间有更多的数据流。当某些块以前复制不足时,可能会发生这种情况。添加新节点后,NameNode会定期安排从旧DNs到其他DNs(不一定是新DNs)的复制任务。

    感谢您的回复!我的意思是,在数据传输过程中,带宽被过度利用。谢谢您的回复!我指的是网络流量。我通过以下方法解决了复制块不足的问题:您发布的指令是如此错误。setrep无法修复复制块下的问题。如果文件已经有3个repl,设置replFactor=3当然会解决复制不足的问题。但是,如果文件有2个或更少的repl,并且默认情况下replFactor为3,那么设置replFactor=3就是一个noop。它仍在复制中。NameNode将缓慢地将复制任务从旧DN调度到新DN。从你张贴的照片,我更确信我是正确的。我熟悉HDFS代码。2个DNs之间唯一的巨大流量是管道写入或块复制任务。请继续我以前的评论:平衡器的复制和删除类似于块复制。但是你的平衡器很快就完成了。所以我排除了这种可能性,因为复制只在平衡器运行时发生,除非平衡器异常停止。我看到数据流是从hadoop-02到hadoop-07的。您可能需要检查DN日志以了解发生了什么。