2010-07-06 52 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,則可能會在羣集中查找另一個數據節點以複製數據,但不會找到它,因此可能會退出。

相關問題