1. 輸入文件從HDFS進行讀取.
1. 輸出文件會存入本地磁盤.
1. Reducer和Mapper間的網絡I/O,從Mapper節點得到Reducer的檢索文件.
1. 使用Reducer實例從本地磁盤回讀數據.
1. Reducer輸出- 回傳到HDFS.
## 串行化
傳輸、存儲都需要
Writable接口
Avro框架:IDL,版本支持,跨語言,JSON-linke
## 壓縮
能夠減少磁盤的占用空間和網絡傳輸的量
Compressed Size, Speed, Splittable
gzip, bzip2, LZO, LZ4, Snappy
要比較各種壓縮算法的壓縮比和性能
重點:壓縮和拆分一般是沖突的(壓縮后的文件的block是不能很好地拆分獨立運行,很多時候某個文件的拆分點是被&#x#x62C6;分到兩個壓縮文件中,這時Map任務就無法處理,所以對于這些壓縮,Hadoop往往是直接使用一個Map任務處理整個文件的分析)
Map的輸出結果也可以進行壓縮,這樣可以減少Map結果到Reduce的傳輸的數據量,加快傳輸速率
## 完整性
磁盤和網絡很容易出錯,保證數據傳輸的完整性一般是通過CRC32這種校驗法
每次寫數據到磁盤前都驗證一下,同時保存校驗碼
每次讀取數據時,也驗證校驗碼,避免磁盤問題
同時#x65F6;每個datanode都會定時檢查每一個block的完整性
當發現某個block數據有問題時,也不是立刻報錯,而是先去Namenode找一塊該數據的完整備份進行恢復,不能恢復才報錯