hadoop預設對3個副本的儲存策略和執行策略

2021-08-25 11:47:11 字數 626 閱讀 2030

1,首先要先了解下什麼是rack(機架)集群,乙個集群有多個機架,乙個機架有多個機器,乙個機器乙個datanode或namenode節點。通常乙個機架內的機器之間的網路速度會高於跨機架機器之間的網路速度。

2,但是要同時保持副本儲存策略的容錯性和高效性,第一副本:放置在上傳檔案的dn上(就是執行『hadoop fs -put 檔名』上傳檔案命令的機器上,本地檔案上傳到同一臺機器自然要快一點),如果是集群外提交,則隨機挑選一台;第二副本:放置在第一副本不同機架的不同節點上;第三副本,放置在第二副本相同機架的不同節點上;其他更多副本:隨機放置在節點中。

3,在高效性方面,乙個大檔案被分成多個分片,也就是多個map任務分別在多個datanode節點上處理,這裡就牽扯到任務粒度。如果有m個map任務,不一定會在m個datanode 節點上並行執行。因為可能存在乙個datanode上有多個分片\資料塊\map任務,所以應該準確的說m個map任務在n個datanode節點上並行執行(注意是並行執行,這樣同時處理才會快)。

4,本地計算,在2中也存在野種思想,就是把在哪天dn上傳的檔案就把次dn作為第一副本;再者就是資料儲存在那台機器就由哪台機器負責進行這部分資料的計算,這樣可以減少資料在網路上的傳輸,資料在**我就在**計算,做到不移動資料,在業界把這形容為「移動計算比移動資料更經濟」。

C 對C語言的擴充套件 3 預設引數和佔位引數

通常情況下,函式在呼叫時,形參從實參那裡取得值。對於多次呼叫同一函式同一實參時,c 給出了更簡單的處理辦法。給形參以預設值,這樣就不用從實參那裡取值了。1 若你填寫引數,使用你填寫的,不填寫預設 void func int a 3 2 在預設引數規則 如果預設引數出現,那麼右邊的都必須有預設引數 v...

3個對泛型 List 排序的方法

方式1 list softdrink list manager.softdrink.listsoftdrink list.sort newmycomp compare list.sort newmycompdesc compare public class mycomp icomparer soft...

js中對函式設定預設引數值的3種方法

js中對函式設定預設引數值的3種方法 第一種方法 function example a,b 注意以上函式也可寫作如下 function example 呼叫示例 alert example 輸出3 alert example 10 輸出12 alert example 10,20 輸出30 aler...