2010-07-06 54 views
0

我正在尝试一个小型hadoop设置(用于实验)只有2台机器。我正在加载大约13GB的数据,大约3900万行的表格,使用Hive的复制因子为1。即使在hadoop/hive上的数据分发

我的问题是hadoop始终将所有这些数据存储在单个datanode上。只有当我使用setrep将dfs_replication因子更改为2时,hadoop才会在另一个节点上复制数据。我也尝试过平衡器($HADOOP_HOME/bin/start-balancer.sh -threshold 0)。平衡器认识到它需要移动5GB左右才能达到平衡。但是他说:No block can be moved. Exiting...并退出:

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数据的分布,而不会复制?

+0

您可能会发现,您在http://serverfault.com/ – 2010-07-06 11:34:26

+0

上得到了更好的回复您能否在您的目录中显示主从文件的内容? – SleepyThread 2013-08-07 12:27:53

回答

0

你使用两台机器作为datanodes吗?极不可能,但你可以为我确认这一点。

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

相关问题