0
我在Google Cloud上創建了一個集羣,他們讓我選擇要使用多少臺計算機以及每臺計算機上應該安裝多少個核心。如果我想運行MapReduce作業,請求8臺帶有1個內核的機器和每臺需要2個4內核的機器有什麼實際區別?對於MapReduce作業,使用1個4核的機器和4個1核的機器相同?
我在Google Cloud上創建了一個集羣,他們讓我選擇要使用多少臺計算機以及每臺計算機上應該安裝多少個核心。如果我想運行MapReduce作業,請求8臺帶有1個內核的機器和每臺需要2個4內核的機器有什麼實際區別?對於MapReduce作業,使用1個4核的機器和4個1核的機器相同?
你在標題和正文中的問題是不同的。
在4x1core和1x4core之間進行選擇時,後者具有數據局部性的優勢 - 映射器和縮減器之間沒有數據傳輸,所有數據都在同一臺機器上。
要考慮的另一個重要因素是RAM的數量。如果你不得不選擇1臺16GB內存的機器和8臺2GB內存的機器,你最好選擇第一個選項,因爲有些算法需要在內存中加載大量內存,而且你只能使用小內存運行它們。
要記住的最後一件事:對集羣中所有機器配置相同的配置很重要,否則有些配置會提前完成並等待慢速配置。如果集羣將增長,現在選擇最合適的配置。
長話短說:在大多數情況下,高端機器的性能會更好。如果可以,請選擇它們。
感謝您的信息,這是非常有益的!另外,如果機器有四個內核,可以在同一臺機器上運行四個映射器?使用所有內核有什麼特別之處嗎?或者Hadoop會自動執行這些操作? – Jessica
@Jessica是的,這是可能的。通常你會在作業開始前聲明mapper資源,所以你可以說mapper默認需要2gb ram和1個核心,如果hadoop有16gb ram和8個可用內核,hadoop會產生8個mapper。你可以谷歌YARN(hadoop資源管理器)並檢查它是如何工作的。 – AdamSkywalker
謝謝@AdamSkywalker! – Jessica