Равномерное распределение данных по hadoop / hive - PullRequest
0 голосов
/ 06 июля 2010

Я пробую небольшую настройку Hadoop (для экспериментов) только с 2 машинами. Я загружаю около 13 ГБ данных, таблицу из примерно 39 миллионов строк с коэффициентом репликации 1 с использованием Hive.

Моя проблема в том, что hadoop всегда хранит все эти данные на одной датоде. Только если я изменю коэффициент dfs_replication на 2 с помощью setrep, hadoop копирует данные на другом узле. Я также попробовал балансировщик ($HADOOP_HOME/bin/start-balancer.sh -threshold 0). Балансировщик признает, что для балансировки ему необходимо переместиться на 5 ГБ. Но говорит: 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, без репликации?

1 Ответ

0 голосов
/ 14 октября 2010

вы используете обе свои машины как датододы? Очень маловероятно, но вы можете подтвердить это для меня.

Как правило, в кластере из 2 машин я ожидаю, что одна машина будет namenode, а другая - datanode. Таким образом, тот факт, что когда вы устанавливаете коэффициент репликации в 1, данные копируются в единственный доступный для него канал данных. Если вы измените его на 2, он может искать другой кластер данных в кластере, чтобы скопировать данные, но не найдет его, и поэтому он может завершиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...