Hadoop HDFS 没有均匀分布数据块
Hadoop HDFS is not distributing blocks of data evenly
我目前 运行 是一个有 2 个节点的集群。 1个节点是master/slave,另一个只是从节点。我有一个文件,我将块大小设置为该文件大小的一半。然后我做
hdfs dfs -put file /
文件被复制到 HDFS 没有问题,但是当我检查 HDFS 站点时,我看到创建的两个块都在一个数据节点中(这些块在我使用 -put 命令的数据节点上)。我什至尝试调用平衡器脚本,但两个块仍在同一个数据节点上。
我需要数据在所有节点之间均匀分布(尽可能多)。
我是不是遗漏了什么?
如 hdfs dfs -ls
输出所示,您的复制因子设置为 1
,因此 hdfs
没有令人信服的理由将数据块分布在数据节点上。
您需要将复制级别至少提高到 2
才能获得您期望的结果,例如:
hdfs dfs -setrep 2 /input/data1.txt
当我们将数据写入 hdfs 时,为了节省带宽利用率和网络往返次数,初始副本试图保存在我们执行 hadoop put 命令的同一节点上。作为您的复制 1 ,它就是这样发生的。
我目前 运行 是一个有 2 个节点的集群。 1个节点是master/slave,另一个只是从节点。我有一个文件,我将块大小设置为该文件大小的一半。然后我做
hdfs dfs -put file /
文件被复制到 HDFS 没有问题,但是当我检查 HDFS 站点时,我看到创建的两个块都在一个数据节点中(这些块在我使用 -put 命令的数据节点上)。我什至尝试调用平衡器脚本,但两个块仍在同一个数据节点上。
我需要数据在所有节点之间均匀分布(尽可能多)。
我是不是遗漏了什么?
如 hdfs dfs -ls
输出所示,您的复制因子设置为 1
,因此 hdfs
没有令人信服的理由将数据块分布在数据节点上。
您需要将复制级别至少提高到 2
才能获得您期望的结果,例如:
hdfs dfs -setrep 2 /input/data1.txt
当我们将数据写入 hdfs 时,为了节省带宽利用率和网络往返次数,初始副本试图保存在我们执行 hadoop put 命令的同一节点上。作为您的复制 1 ,它就是这样发生的。