Map-Worker(Mapper)的數量取決於輸入文件的Input-split數量。
so 例如:200輸入分割(它們是邏輯的)= 200映射器。
如何選擇Mapper節點?
映射器是本地數據節點,如果它不可能,那麼數據傳輸到空閒節點,並且映射器在該節點 上被調用。
減速機的數量可以由用戶設置(Job.setNumberOfReducer(數字)),否則它也將按照Mapper中間輸出的分割數量。
其他問題的答案
Q1>so in one node can run for example 10 mappers in parallel at one time, or these mappers are processed sequentially?
答案:順序(的最大數目(活性/運行)映射器=的DataNodes數)
Q2>how are chosen the nodes where are reducers invoked?
答:
- 中間鍵值存儲在本地文件系統中不在HDFS中,然後它正在複製(HDFS)到Reducer節點。
- 單個映射器將數據提供給多個reducer。所以數據的局部性是不成問題的,因爲如果不是所有的節點,來自許多節點的數據都來自於特定的節點。
所以被(或至少應)選擇在節點上的帶寬減速機,在頭腦中保持所有上述各點
Q3>if we need reducers count bigger then overall nodes count (for example 90 reducers in 50 nodes cluster), are the reducers on one node processed in parallel or sequentially?
答案:順序((活性/運行)減速器的最大數=數據節點數量)
好的,所以在一個節點中可以同時運行10個映射器,或者這些映射器是按順序處理的?如果我們設置了減少器數量少於總體節點數量(例如50個節點羣集中的40個減少器),那麼如何選擇減法器調用的節點?它取決於中間輸出的局部性以實現最快的數據傳輸還是取決於其他任何東西?另一方面,如果我們需要減少器數量大於總體節點數(例如50個節點羣中的90個減少器),那麼並行或順序處理一個節點上的減速器? – babusek
我已添加ans。 –
非常感謝!你幫助了我,現在我明白了一切(我希望)。 – babusek