我有一個帶有動態扇出任務的 Argo 作業流,這些任務執行一些映射操作(在 Map-Reduce 含義背景關系中)。我想創建一個聚合他們的結果的reducer。當每個映射器的輸出很小并且可以作為輸出引數時,可以這樣做。有關如何執行此操作的說明,請參閱此 SO question-answer。
但是如何在不撰寫自定義邏輯的情況下使用 Argo聚合輸出工件,將它們寫入每個映射器中的某個存盤并在減速器中讀取呢?
uj5u.com熱心網友回復:
工件比引數更難聚合。
引數總是文本并且通常很小。這使得 Argo Workflows 可以輕松地將它們聚合成單個 JSON 物件,然后可以通過“reduce”步驟使用該物件。
另一方面,人工制品可以是任何型別或大小。因此,Argo Workflows 對聚合的幫助有限。
它提供的主要相關功能是宣告性存盤庫寫入/讀取操作。例如,您可以指定要寫入每個引數的 S3 前綴。然后,在 reduce 步驟中,您可以從該前綴加載所有內容并執行聚合邏輯。
Argo Workflows 提供了一個通用的 map/reduce 示例。但除了工件寫入/讀取之外,您幾乎必須自己執行聚合邏輯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/407861.html
標籤:
