问题是:我在创建集群时有3个数据节点,而且几天前我添加了另外两个数据节点。
在我这样做之后,我运行了平衡器,平衡器快速完成,并说集群是平衡的。
但是我发现,一旦我将数据(大约30MB)放入集群,数据节点就会使用大量带宽(大约400Mbps)在旧数据节点和新数据节点之间发送和接收数据。
有人能告诉我可能的原因是什么吗?
也许我描述的问题不是很清楚,我会告诉你两个图片(来自zabbix),hadoop-02是“旧的datanode”之一,而hadoop-07是“新的datanode”之一。
答案 0 :(得分:1)
如果您的意思是网络流量。 Hdfs使用写入管道。假设复制因子为3,数据流为
客户 - > Datanode_1 - > Datanode_2 - > Datanode_3
如果数据大小为30mb,则总流量为90mb加上一点开销(用于连接创建,数据包标头,数据包中的数据校验和)
如果您的意思是流量。我相信目前Hdfs在客户端< - >之间没有带宽限制。 DN和DN< - > DN。它将尽可能多地使用带宽。
如果您注意到旧数据节点和新数据节点之间有更多数据流。当某些块之前未被复制时,可能会发生这种情况。添加新节点后,NameNode会定期将复制任务从旧DN安排到其他DN(不一定是新DN)。
答案 1 :(得分:0)
坚持!!您说在数据传输期间带宽被过度使用或者在放置数据后DN未平衡,因为平衡器用于平衡群集中节点上存在的数据量。