題目描述: Apache Hadoop YARN是一種新的Hadoop資源管理器,主要部件爲resource manager和node manager。resource manager使用有限狀態機維護有狀態對象的生命週期。 RmAppAttempt是resource manager中用於維護一個 Application運行嘗試的生命週期的數據結構,當某個事件發生時RmAppAttempt會根據當前狀態進行狀態遷移,同時觸發一個其餘行爲。RmAppAttempt相關狀態和事件簡述以下:node
請編寫一段程序模擬實現RmAppAttempt狀態機,接受一段連續事件輸入,輸出每一個事件處理後yarn中對應RmAppAttempt對象的狀態。數據結構
輸入描述: 模擬RmAppAttempt狀態機,接收一段連續事件輸入 輸入接口:(事件間用空格分隔) 事件源|RmAppAttempt對象|事件 事件源:RmApp、ResourceScheduler、ApplicationMasterLauncher、RmContainer 事件:start、app_accepted、container_allocated、launched、finished、killapp
輸出描述: 輸出接口:(輸出結果用分毫;分隔) RmAppAttempt對象|狀態 狀態:submitted、scheduled、allocated、running、finished、killed 無效輸入經過狀態機過濾,不須要任何輸出oop
示例1 輸入: mApp|RmAppAttempt_001|start RmApp|RmAppAttempt_002|start RmApp|RmAppAttempt_001|kill 輸出: RmAppAttempt_001|submitted;RmAppAttempt_002|submitted;RmAppAttempt_001|killed; <br><br>對象
----------------2019.03.20------------------- 上機考試的時候,由於只剩下20min左右時間作這道題,來不及寫完,只寫了一部分代碼。待以後完善了再來更新。接口