簡體   English   中英

甚至在hadoop / hive上分發數據

[英]Even data distribution on hadoop/hive

我正在嘗試僅2台機器進行小型hadoop設置(用於實驗)。 我正在加載約13GB的數據,約3,900萬行的表,使用Hive的復制因子為1。

我的問題是hadoop總是將所有這些數據存儲在單個datanode上。 僅當我使用setrep將dfs_replication因子更改為2時,hadoop才會在另一個節點上復制數據。 我還嘗試了平衡器( $HADOOP_HOME/bin/start-balancer.sh -threshold 0 )。 平衡器意識到需要平衡約5GB的空間。 但是說: No block can be moved. Exiting... 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上實現均勻的數據分配嗎?

您是否將兩台計算機都用作數據節點? 可能性很小,但您可以為我確認。

通常,在兩台計算機群集中,我希望一台計算機是namenode,另一台計算機是datanode。 因此,當您將復制因子設置為1時,數據將被復制到唯一可用的數據節點。 如果將其更改為2,它可能會在集群中尋找另一個數據節點來將數據復制到該節點,但找不到它,因此可能會退出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM