0

わずか 2 台のマシンで (実験用に) 小さな Hadoop セットアップを試みています。Hive を使用して、約 13GB のデータ、約 3900 万行のテーブル、レプリケーション ファクター 1 をロードしています。

私の問題は、hadoop が常にこのすべてのデータを単一のデータノードに格納することです。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 でデータを均等に分散する方法を提案できる人はいますか?

4

1 に答える 1

0

両方のマシンをデータノードとして使用していますか?可能性は非常に低いですが、これを確認できます。

通常、2台のマシンのクラスターでは、1台のマシンがネームノードになり、もう1台のマシンがデータノードになると思います。したがって、レプリケーション係数を1に設定すると、データは使用可能な唯一のデータノードにコピーされます。2に変更すると、クラスター内でデータをコピーする別のデータノードを探す場合がありますが、見つからないため、終了する場合があります。

于 2010-10-13T20:48:25.817 に答える