[英]Spark executors, tasks and partitions
隨着我不斷閱讀有關 Spark 架構和調度的在線資源,我開始變得更加困惑。 一個資源說: 一個階段中的任務數與該階段中最后一個RDD中的分區數相同。 另一方面: Spark 將特定 Executor 上的任務數映射到分配給它的核心數。 所以,第一個資源說如果我有 1000 個分區,那么無論我的機器是什么,我都會有 1000 個任務。 在第二種情況下,如果我有 4 核機器和 1000 個分區,那該怎么辦? 我會有4個任務? 那么數據是如何處理的呢?
另一個困惑: 每個工作人員一次只能處理一個任務,而執行程序可以在其生命周期內並行和順序運行多個任務。 那么任務是順序的還是並行的?
spark.task.cpus
配置為 1 以外的值(這是默認值)因此,將任務視為必須處理的一些(獨立)工作塊。 它們肯定可以並行運行
因此,如果您有 1000 個分區和 5 個執行程序,每個執行程序有 4 個核心,則通常會有 20 個任務並行運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.