Hadoop的data.dir配置導致balancer無法平衡各節點

hdfs的data.dir配置如下:
<property>
<name>dfs.data.dir</name>
<value>/diska/data/hadoop/data1,/diska/data/hadoop/data2</value>
</property>


後來在web界面的live nodes中看到,怎麼hadoop配置的可用空間比實際的空間要多一倍,所以推測,hadoop不會檢測是否相同的盤,只單獨計算data.dir配置的每個目錄的總容量,簡單相加。

因爲要運行balancer,但發現log顯示信息都正確,也表明要copy block到比較均衡的機器,但實際上卻沒有發生block的拷貝。

把data.dir修改正確後,balancer能正確均衡集羣了。

bin/start-balancer.sh默認的一個判斷是否均衡的閥值是10%,也就是說,各個節點間使用率的偏差不超過10%。

PS: hadoop中第dfs.replication設置第數量如果跟機器數一樣,則也不能balance,因爲這時每臺機都已經有一個拷貝,就不會在複製。

從balancer的後臺輸出中看到,移動block時總是from ... to ... through ...,也就是說,會以一臺中間節點來轉移數據,但這只是表面看到的情況,實際情況是,through的這臺節點,其實是包含要移動block的一個copy,並且是已經balanced的節點。這樣的話,移動block就不必真的從非balanced的節點移動,減輕了要移動block的節點第壓力。
發佈了62 篇原創文章 · 獲贊 1 · 訪問量 7325
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章