何時分區
當map函數輸出數據到循環內存緩衝區,數據達到循環內存緩衝區的閥值時,會將數據溢寫到文件中,在寫入文件之前會對數據進行分區
分區分類及如何實現
第一種:默認分區
系統自動調用HashPartitioner類進行分區,原碼如下:
該類通過繼承Partitioner類實現分區,將key的哈希值與integer的最大值做&運算,並%1來設置分區
第二種:自定義分區
1、 創建一個類並繼承Partitioner類<K,V>
K-------------map函數的輸出key類型
V-------------map函數的輸出value類型
2、實現getPartition()方法,在該方法中設置分區邏輯
第三種:全局排序