我目前正在运行一个包含2个节点的集群。 1节点是主/从节点,另一个节点是从节点。我有一个文件,我将块大小设置为该文件大小的一半。然后我做
hdfs dfs -put file /
文件被复制到HDFS没有问题,但是当我检查HDFS站点时,我看到创建的块都在一个datanode中(块在datanode上,我使用-put命令)。我甚至试图调用平衡器脚本,但两个块仍然在同一个datanode上。
我需要在所有节点之间均匀分布数据。
我在这里错过了什么吗?
答案 0 :(得分:1)
如hdfs dfs -ls
输出所示,您的复制因子设置为1
,因此hdfs
没有令人信服的理由在数据节点上分发数据块。
您需要将复制级别提高到至少2
才能达到预期效果,例如:
hdfs dfs -setrep 2 /input/data1.txt
答案 1 :(得分:0)
当我们将数据写入hdfs时,为了节省带宽利用率和网络往返,初始副本试图保存在我们执行hadoop put命令的同一节点上。作为你的复制1,就是这样。