hadoop/hive上的均匀数据分布

hadoop/hive上的均匀数据分布,hadoop,hive,Hadoop,Hive,我正在尝试一个小的hadoop设置(用于实验),只使用两台机器。我正在加载约13GB的数据,这是一个包含约3900万行的表,使用Hive的复制系数为1 我的问题是hadoop总是将所有这些数据存储在一个datanode上。仅当我使用setrep将dfs_复制因子更改为2时,hadoop才会复制另一个节点上的数据。我还尝试了平衡器($HADOOP\u HOME/bin/start-balancer.sh-threshold 0)。平衡器认识到它需要移动5GB左右才能达到平衡。但是说:任何块都不能移

我正在尝试一个小的hadoop设置(用于实验),只使用两台机器。我正在加载约13GB的数据,这是一个包含约3900万行的表,使用Hive的复制系数为1

我的问题是hadoop总是将所有这些数据存储在一个datanode上。仅当我使用setrep将dfs_复制因子更改为2时,hadoop才会复制另一个节点上的数据。我还尝试了平衡器(
$HADOOP\u HOME/bin/start-balancer.sh-threshold 0
)。平衡器认识到它需要移动5GB左右才能达到平衡。但是说:
任何块都不能移动。退出…
和退出:

2010-07-05 08:27:54,974 INFO org.apache.hadoop.hdfs.server.balancer.Balancer: Using a threshold of 0.0
2010-07-05 08:27:56,995 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /default-rack/10.252.130.177:1036
2010-07-05 08:27:56,995 INFO org.apache.hadoop.net.NetworkTopology: Adding a new node: /default-rack/10.220.222.64:1036
2010-07-05 08:27:56,996 INFO org.apache.hadoop.hdfs.server.balancer.Balancer: 1 over utilized nodes: 10.220.222.64:1036
2010-07-05 08:27:56,996 INFO org.apache.hadoop.hdfs.server.balancer.Balancer: 1 under utilized nodes:  10.252.130.177:1036
2010-07-05 08:27:56,997 INFO org.apache.hadoop.hdfs.server.balancer.Balancer: Need to move 5.42 GB bytes to make the cluster balanced.

Time Stamp               Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved
No block can be moved. Exiting...
Balancing took 2.222 seconds

有谁能建议如何在没有复制的情况下在hadoop上实现数据的均匀分布吗?

您是否将两台机器都用作数据节点?不太可能,但你可以帮我确认一下


通常在两台机器的集群中,我希望一台机器是namenode,另一台是datanode。因此,当您将复制因子设置为1时,数据将被复制到唯一可用的datanode。如果您将其更改为2,它可能会在群集中查找另一个要将数据复制到的datanode,但找不到它,因此它可能会退出。

您可能会发现,您可以在上获得更好的响应。是否可以在conf dir中显示主文件和从文件的内容?