基於AWS雲服務的批處理系統架構

abel_cao發表於2015-02-03

在AWS執行批處理任務時,允許按需配置多部分作業處理的應用架構,可用於對異構的系統的瞬時或延遲部署,並可擴充套件為“網格”型工作節點,通過並聯的大批量任務處理實現快速收斂。面向批處理應用程式現在可以有很多的地方利用這種風格按需加工,包括理賠處理,大規模改造,媒體轉碼和多部分的資料處理工作。

 

批處理架構通常是高可變使用模式的代名詞,即在一段低使用率後有明顯的使用峰值(例如,月末的處理)。構建一個批處理架構有很多的方法。本文給出了一個基本的批處理架構,用來支援作業排程,作業狀態檢查,上傳原始資料,輸出作業結果,網格管理,以及報告作業效能的資料。

1. 作業管理器部署在EC2 例項上,使用者通過Elastic IP與之互動。作業管理器元件控制著程式的接收,排程,啟動,管理以及完成批處理作業, 同時也可以訪問最終的結果,作業和worker狀態,以及作業的進展資訊。

2.  原始的作業資料被上傳到一個高可用的永久儲存器中,即S3.

3.  根據使用者的行為,作業管理器將單獨的作業任務插入到SQS中。

4.  Worker節點是使用AutoScaling組服務的 EC2 例項。 這個組是一個保證了worker 節點健康和可擴充套件的容器。Worker 節點自動地從輸入佇列中提取作業部分,同時執行批處理步驟列表中的單獨任務。

5.  worker 節點產生的中間資料儲存在 Amazon S3中。

6.  作業進展資訊和統計資訊儲存在分析儲存區。分析儲存區既可以用AmazonSimpleDBRDS 例項.

7.  作為可選項, 已完成的任務可以插入到AmazonSQS 佇列中,用於鏈式結構的再次處理節點。


相關文章