hadoop中slot簡介(map slot 和 reduce slot)
Slots是Hadoop的一個重要概念。然而在Hadoop相關論文,slots的闡述難以理解。網上關於slots的概念介紹也很少,而對於一個有經驗的Hadoop開發者來說,他們可能腦子裡已經理解了slots的真正含義,但卻難以清楚地表達出來,Hadoop初學者聽了還是雲裡霧裡。我來嘗試講解一下,以期拋磚引玉。
首先,slot不是CPU的Core,也不是memory chip,它是一個邏輯概念,一個節點的slot的數量用來表示某個節點的資源的容量或者說是能力的大小,因而slot是 Hadoop的資源單位。
Hadoop利用slots來管理分配節點的資源。每個Job申請資源以slots為單位
Hadoop裡有 兩種slots, map slots和reduce slots,map task使用map slots,一一對應,reduce task使用reduce slots。注: 現在越來越多的觀點認為應該打破map slots與 reduce slots的界限,應該被視為統一的資源池,they are all resource,從而提高資源的利用率。區分map slots和reduce slots,容易導致某一種資源緊張,而另一個資源卻有空閒。在Hadoop的下一代框架MapR
Hadoop中通常每個tasktracker會包含多個slots,Job的一個task均對應於tasktracker中的一個slot。系統中map slots總數與
reducer slots總數的計算公式如下:
Map slots總數=叢集節點數×mapred.tasktracker.map.tasks.maximumReducer slots總數=叢集節點數×mapred.tasktracker.reduce.tasks.maximum