串流 Amazon EMR叢集錯誤 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

串流 Amazon EMR叢集錯誤

您通常可以在 syslog 檔案中發現串流錯誤的原因。從 Steps (步驟) 窗格即可連結至該訊息。

以下是串流叢集常見的錯誤。

傳送至映射器的資料格式是否錯誤?

如果是這種情況,請尋找在任務嘗試日誌的失敗任務嘗試中 syslog 檔案中的錯誤訊息。如需詳細資訊,請參閱檢視 Amazon EMR日誌檔案

您的指令碼是否逾時?

映射器或縮減器指令碼的預設逾時為 600 秒。如果您的指令碼所耗時間超過此值,任務嘗試將會失敗。您可以透過檢查在任務嘗試日誌的失敗任務嘗試中的 syslog 檔案來確認是否為此狀況。如需詳細資訊,請參閱檢視 Amazon EMR日誌檔案

您可以透過為 mapred.task.timeout 組態設定設定新的值來變更時間限制。此設定指定 Amazon EMR將終止未讀取輸入、寫入輸出或更新其狀態字串的任務的毫秒數。您可以透過傳遞額外的串流引數 -jobconf mapred.task.timeout=800000 來更新這個值。

您是否使用無效串流引數來進行傳遞?

Hadoop 串流僅支援以下引數。如果您是使用如下所示以外的引數來進行傳遞,叢集將會失敗。

-blockAutoGenerateCacheFiles -cacheArchive -cacheFile -cmdenv -combiner -debug -input -inputformat -inputreader -jobconf -mapper -numReduceTasks -output -outputformat -partitioner -reducer -verbose

此外,Hadoop 串流只能辨識使用 Java 語法 (也就是以單一連字號為開頭) 傳遞的引數。如果您使用以雙連字號為開頭的引數來進行傳遞,叢集將會失敗。

您的指令碼結束時是否有發生錯誤?

如果您的映射器或縮減器指令碼結束時出現錯誤,您可以找到在失敗任務嘗試中任務嘗試日誌的 stderr 檔案中找到該錯誤。如需詳細資訊,請參閱檢視 Amazon EMR日誌檔案