J'essaye une petite installation de hadoop (pour l'expérimentation) avec juste 2 machines. Je charge environ 13 Go de données, une table d'environ 39 millions de lignes, avec un facteur de réplication de 1 en utilisant Hive.Distribution de données égale sur hadoop/ruche
Mon problème est que hadoop stocke toujours toutes ces données sur un seul datanode. Seulement si je change le facteur dfs_replication à 2 en utilisant setrep, hadoop copie les données sur l'autre noeud. J'ai également essayé l'équilibreur ($HADOOP_HOME/bin/start-balancer.sh -threshold 0
). L'équilibreur reconnaît qu'il doit se déplacer autour de 5 Go pour équilibrer. Mais il dit: No block can be moved. Exiting...
et sort:
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
Quelqu'un peut-il suggérer des moyens d'obtenir une répartition uniforme des données sur Hadoop, sans réplication?
Vous pouvez trouver que vous obtenez une meilleure réponse sur http://serverfault.com/ –
Pouvez-vous s'il vous plaît montrer le contenu du fichier maître et esclaves dans votre dir dir? – SleepyThread