假設我在Reducer代碼中檢測到輸入鍵/值中的某些內容,應該實際運行哪些代碼以便reducer不再繼續,輸出中的任何已發出記錄都將寫入輸出文件和作業停止不再進一步減少發生?在Reducer代碼中以編程方式停止作業
-1
A
回答
1
停止工作可能不是一個好主意。 但是,如果你需要它,一種方法是創建你自己的異常類,或許延伸InterruptedException
或IOException
,並且當你想要退出時,只要出現這種情況就拋出異常。
你的異常類可能如下:
@Override
protected void reduce(Text key, Iterable values, Context context) throws IOException,InterruptedException {
...
if(<condition to quit happen>){
throw new QuitReducerException("Quitting reducer due to some specified reason");// You may add details of the reason you are quitting and this will be available in the job logs (in stderr)
}
...
}
PS:這不能保證
Class QuitReducerException extends InterruptedException {
//Parameterless Constructor
public QuitReducerException() {}
//Constructor that accepts a message
public QuitReducerException(String message)
{
super(message);
}
}
而在你的減少方法,你可以按如下使用由電流減速器發出的輸出將被承諾輸出文件。另外任何其他還未完成的reducer都不會提交這些文件。雖然已經完成的減員已經完成了他們的產出。
1
這可能是多個reducers必須在您的hadoop集羣上運行的情況。因此,即使您在輸入中檢測到錯誤並嘗試停止輸入,也不能確定狀態是否一致(即,一旦收到錯誤輸入,就不會處理記錄),因爲多個記錄可能會並行處理多個記錄。
所以我不認爲這是停止工作的好主意。
相關問題
- 1. 以編程方式終止Spark作業
- 2. 如何以編程方式停止java.util.logging?
- 3. 以編程方式停止導航
- 4. 以編程方式停止請求
- 5. 以編程方式停止GIF動畫
- 6. 碼頭:以編程方式停止導致「1線程無法停止」
- 7. 以編程方式創建SQL作業
- 8. 以編程方式重建jenkins作業
- 9. 如何在iphone中以編程方式停止快照?
- 10. 如何以編程方式停止在Firefox中加載頁面?
- 11. MAIN.EXE停止工作在編譯圖形代碼在代碼塊
- 12. 以編程方式生成QR代碼
- 13. Magento - 以編程方式通過代碼
- 14. 以編程方式檢查.NET代碼
- 15. 在Quartz.NET中以編程方式編輯作業CronExpression - 有哪些方法?
- 16. 以編程方式停止Web服務中的Windows服務
- 17. 以編程方式停止並啓動Eclipse中的JBoss
- 18. 以編程方式停止JBoss 5.1.0GA中的MDB
- 19. 如何以編程方式停止進程
- 20. 如何以編程方式強制停止應用程序 - Android
- 21. 以編程方式Java EE停止應用程序
- 22. Javascript代碼停止工作
- 23. 代碼= -11850「停止操作」
- 24. VBA代碼停止工作
- 25. 你可以在lambda函數中以編程方式停止Alexa Skill會話嗎?
- 26. 如何停止在android中以編程方式在VideoView中播放視頻?
- 27. Spark獨立模式:以編程方式提交作業
- 28. 在Visual Studio的源代碼編輯器中停止格式化部分代碼
- 29. 如何在Android中以編程方式設置ImageViews源代碼?
- 30. 以編程方式在IOS中安裝企業應用程序
+1,我同意這不是一個好主意,但在某些情況下可能需要。 – Amar 2013-04-04 19:16:54