2012-04-23 144 views
2

我運行一些批處理作業,其數據輸入不斷變化,我在配置容量時遇到問題。我使用旋轉來完成初始設置,但是一旦啓動,例如5臺機器,我不知道如何在運行時添加新機器。我不知道數據的複雜程度或數據量有多大,所以我想知道是否有一種方法可以將新機器添加到羣集中,並立即生效(或者有一些延遲,但不想必須關閉集羣並將其與新節點一起提交)。如何將新節點添加到活動hbase/hadoop羣集?

回答

9

有確切的解釋如何添加節點: http://wiki.apache.org/hadoop/FAQ#I_have_a_new_node_I_want_to_add_to_a_running_Hadoop_cluster.3B_how_do_I_start_services_on_just_one_node.3F

在同一時間 - 我不知道已經運行的作業將這些節點的優勢,因爲計劃在何處運行每個任務偏偏作業過程的開始時間(據我所理解)。
我也認爲只在這些瞬態節點上運行任務跟蹤器更實用。

+1

未開始的任務加入「mradmin -refreshNodes」設施可以在新的節點安排,但不會打破現有任務。此外,由於沒有任何新節點將在本地存儲數據,因此將數據推送到這些節點進行處理的開銷可能大於處理它的處理成本。 – 2012-04-23 18:42:15

2

檢查由以下參數參照的文件:

  • dfs.hosts => dfs.include
  • dfs.hosts.exclude
  • mapreduce.jobtracker.hosts.filename => mapred.include
  • mapreduce.jobtracker.hosts.exclude.filename

可以主機列表添加到文件dfs.include和mapred.include一然後運行

hadoop mradmin -refreshNodes;

hadoop dfsadmin -refreshNodes;

就是這樣。

順便說一句,在0.21

尼基爾

相關問題