Hadoop HDFS不会均匀地分发数据块

时间:2015-03-07 00:13:43

标签: hadoop filesystems hdfs yarn

我目前正在运行一个包含2个节点的集群。 1节点是主/从节点,另一个节点是从节点。我有一个文件,我将块大小设置为该文件大小的一半。然后我做

hdfs dfs -put file /

文件被复制到HDFS没有问题,但是当我检查HDFS站点时,我看到创建的块都在一个datanode中(块在datanode上,我使用-put命令)。我甚至试图调用平衡器脚本,但两个块仍然在同一个datanode上。

我需要在所有节点之间均匀分布数据。

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

hdfs dfs -ls输出所示,您的复制因子设置为1,因此hdfs没有令人信服的理由在数据节点上分发数据块。

您需要将复制级别提高到至少2才能达到预期效果,例如:

hdfs dfs -setrep 2 /input/data1.txt

答案 1 :(得分:0)

当我们将数据写入hdfs时,为了节省带宽利用率和网络往返,初始副本试图保存在我们执行hadoop put命令的同一节点上。作为你的复制1,就是这样。