2017-08-08 72 views
0

最近,我收到了一個map任務嘗試超時錯誤。我已更改mapreduce.task.timeout=1800000或更多時間,但我的問題仍然存在。hadoop map task timeout

任何人都可以幫助我嗎?

背景: 我用Nutch抓取網站,在generate階段的map任務失敗。 crawldb中的每個部分大約10〜20G。節點之間的資源(內存和CPU核心)有很大的差距。

+0

你可以添加你試過的示例代碼嗎? – mrsrinivas

回答

0

CrawlDb每聲部10-20 GB聽起來很多,但它也取決於零件是否可拆分(參見mapreduce.input.fileinputformat.split.minsizemapreduce.output.fileoutputformat.compress.codec)。

我的 「最愛」,爲CrawlDb設置

  • 使用BZip2Codec(可分開)和
  • 限額的部分,大小爲20個億個URL RESP。 〜1GB(bzip2壓縮)通過相應地通過-Dmapreduce.job.reduces=XXX來寫CrawlDb所有作業設置減速機的數量(updatedb的,注入,mergedb,去重複)

然而,爲了找到適合您的集羣設置和硬件可能的最佳選項需要一些實驗。只要確保沒有任務花費太長時間並佔據了工作執行時間。

+0

非常感謝。你能告訴我爲什麼一些地圖任務失敗了,甚至沒有開始輸入?它就像被封鎖一樣。 –

+0

我已經設置了一個參數'-D mapreduce.output.fileoutputformat.compress.type = BLOCK' –

+0

是的,當然,BLOCK是正確的。由於CrawlDb記錄非常小,因此RECORD將是無稽之談。 地圖任務失敗的原因應該在任務(嘗試)日誌中。 –