2013-08-01 36 views
4

我將作業提交給4個主機的集羣,我可以看到它正確地分佈在4個節點中,每個節點有1個映射任務。Hadoop - 強制任務嘗試在不同節點上啓動

稍後,其中一個節點失敗。

我停在故障節點上的TaskTracker,添加該節點的ID,以排除文件,並Hadoop的mradmin -refreshNodes節點的更新列表。失敗的節點從hadoop管理頁面上的可用節點列表中消失。

然後我再次啓動tasktracker,更新節點mradmin,並觀察到該節點再次出現在作業跟蹤器列表中。

在節點關閉期間,hadoop在另一個節點上重新調度map任務執行,因此它開始運行2個map任務。我已經得到了集羣不平衡:

  • 2個節點分別運行的每個1個任務,
  • 1節點正在運行2個任務
  • 和1個節點(一個我重新啓動)的運行沒有任務。

我殺與Hadoop的工作-kill任務的工作attempt_201308010141_0001_m_000000_1,看起來像它永遠不會再次啓動 - 這樣我就可以看到運行的每個1項任務,與所有和1未決任務沒有任務1個節點3個節點在列表中。

我錯過了什麼嗎?將任務從一個節點「移動」到另一個節點的正確方法是什麼?

回答

0

喬布斯保留黑名單任務追蹤者列表(有一個全球黑名單和每個工作)。 我認爲這就是爲什麼您的新嘗試不會在重新啓動的任務跟蹤器的末端重新開始。

您可以嘗試的命令:

hadoop job -unblacklist <jobid> <hostname> 
hadoop job -unblacklist-tracker <hostname> 

http://doc.mapr.com/display/MapR/TaskTracker+Blacklisting

相關問題