使用Spark,如果我已經將我的累加器定義爲關聯和可縮減的,爲什麼每個工作人員都直接將它們發送給驅動程序,而不是隨着我的實際工作逐漸減少?這對我來說似乎有點愚蠢。爲什麼累加器直接發送給驅動程序?
回答
Spark中的每個任務都維護着自己的累加器,並在特定任務完成時將其值返回給驅動程序。
由於在Spark中的累加器大多是一個診斷和監視共享任務之間的累加器會使這些幾乎無用。更何況,特定任務完成之後的工人失敗會導致數據丟失,並使累加器比現在更不可靠。
此外,這種機制與標準RDD reduce
幾乎相同,其中任務結果不斷髮送給驅動程序並在本地合併。
沒錯,但我們假設我正在使用累加器來獲取有關彈性搜索索引的額外信息,特別是查看了哪些文檔。並且可以說在這個指數中有很多重複的,〜40%。在這種情況下,讓每個工人向蓄能器發送關於他們的分區的信息,以使司機爆炸。如果蓄電池的減少與工作人員減少分區的方式相同,那麼在「最終」蓄電池發送給駕駛員時,就不會有問題。 –
這裏沒有區別。任務完成後,累加器和任務結果都會發送。這就是說,使用越來越多的收集累加器,尤其是實現應用程序邏輯並不是最好的想法。 – zero323
等待...從一個任務的結果都發送到驅動程序,然後減少驅動程序?我不認爲這是真的,我相信裁員是在工人之間逐步完成的,直到最終減少到司機身上爲止。 –
- 1. $只發送給直接父控制器
- 2. 爲什麼我可以使用myob Odbc直接驅動程序v7my與Windows 7
- 3. 爲什麼mongo C++驅動程序給我編譯錯誤?
- 4. Spark:將調試文本發送給驅動程序
- 5. PHP - 爲什麼新的SQLSRV驅動程序比舊的mssql驅動程序慢?
- 6. spark驅動程序如何序列化發送給執行程序的任務?
- 7. 爲什麼mule應用程序不會爲log4j加載postgres驅動程序類?
- 8. 爲什麼QMYSQL驅動程序未加載到QT5.2中?
- 9. 將量角器直接連接到瀏覽器驅動程序時使用什麼協議?
- 10. 從顯示器直接讀取EDID沒有驅動程序
- 11. 該程序的累加器中缺少的步驟是什麼?
- 12. 什麼是c#測試驅動程序,爲什麼執行
- 13. 爲什麼啓動驅動器實例
- 14. 將PTX程序直接傳遞到CUDA驅動程序
- 15. Boost累加器的延遲均值和直接均值有什麼區別?
- 16. 爲什麼LINQ發送sp_executesql而不是直接執行SQL?
- 17. C套接字發送()不會發送,直到程序終止
- 18. SignalR。爲什麼組發送給客戶?
- 19. 如何攔截驅動程序上累加器的部分更新?
- 20. 打印機驅動程序發送到Web服務器
- 21. 什麼是Linux內置驅動程序加載順序?
- 22. 什麼是Windows內核驅動程序?
- 23. 什麼是jTDS驅動程序?
- 24. 什麼是pyspark驅動程序?
- 25. 什麼是測試驅動程序?
- 26. 驅動程序類做什麼(陣列)
- 27. 是什麼在MySQL JDBC驅動程序
- 28. 什麼安裝JET ODBC驅動程序?
- 29. 什麼是Type 4 XA驅動程序?
- 30. 什麼是驅動程序功能?
你能否詳細說明一下?我想你對累加器的工作原理有錯誤的想法。或者你問任務結果? – zero323
作爲'broadcast'變量,'accumulators'在幾種情況下非常有用。 –