2012-02-06 61 views
0

我正在運行一個Hadoop流作業,它只有映射器,沒有減速器。我給這份工作4個輸入文件,這些輸入文件都是經過gzip壓縮的,以確保每個輸入文件都映射到一個映射器。兩個gzip的輸入文件的大小小於64 MB,而另外兩個gzip的輸入文件的大小大於64MB。作業長時間運行將近40分鐘,然後失敗地顯示「錯誤:失敗的地圖任務數量超出了允許的限制」。通常作業不應該超過1分鐘,不知道爲什麼它持續40分鐘問題與大小> 64 MB的gzip輸入文件

當我檢查輸出目錄時,我看到輸出是爲兩個gzipip輸入文件生成的,大小爲< 64 MB,輸出是不是針對大小> 64 MB的gzip輸入文件生成的。

有沒有人看過這樣的行爲?

我看到以下消息作業啓動時(我沒有看到這一點,如果我通過小尺寸文件(< 64 MB)作爲輸入到作業)

06年12月2日10時39分10秒INFO mapred.FileInputFormat:要輸入的總輸入路徑:2 12/02/06 10:39:10 INFO net.NetworkTopology:添加新節點:/10.209.191.0/10.209.191.57:1004 12/02/06 10: 39:10 INFO net.NetworkTopology:添加一個新節點:/10.209.191.0/10.209.191.50:1004 12/02/06 10:39:10 INFO net.NetworkTopology:添加一個新節點:/10.209.186.0/10.209 .186.28:1004 12/02/06 10:39:10 INFO net.NetworkTopology:添加一個新節點:/10.209.188.0/10.209.188.48:1004 12/02/06 10:39:10 INFO net.NetworkTopology:添加新節點:/10.209.185.0/10.209.185.50:1004 12/02/06 10:39:10 INFO net.NetworkTopology:Adding a new節點:/10.209.188.0/10.209.188.35:1004

回答

0

如果您已經定義了自己FileInputFormat衍生話,我懷疑你遇到了這個錯誤: https://issues.apache.org/jira/browse/MAPREDUCE-2094

如果你有那麼我建議複製執行將TextInputFormat中的isSplitable方法轉換爲您自己的類。

+0

不,我沒有定義我自己的InputFormat。我的程序是用C++編寫的,我使用hadoop streaming,它有一個默認的TextInputFormat輸入格式。 – sunillp 2012-02-06 17:31:47