Hadoop基礎-MapReduce的工作原理第二彈
阿新 • • 發佈:2018-06-16
原理 data 行數據 一個 mapreduce 不同的 選擇 alt 註釋
Hadoop基礎-MapReduce的工作原理第二彈
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.Split(切片)
1>.MapReduce處理的單位(切片)
想必你在看MapReduce的源碼的時候,是不是也在源碼中看到了一行註釋“//Create the splits for the job”(下圖是我跟源碼的部分截圖),這個切片是MapReduce的最重要的概念,沒有之一!因為MapReduce處理的單位就是切片。
2>.邏輯切割
還記得hdfs存儲的默認單位是什麽嗎?沒錯,默認版本是塊(2.x版本的默認大小是128M),在MapReduce中默認處理的單位就是Split。其實切片本質上來說仍然是塊,只不過和hdfs中的塊是有所不同的。我們知道hdfs在存儲一個大於1G的文件,會將文件按照hdfs默認的大小進行物理切割(將一個文件強行拆開,所有文件都是支持物理切割的!),放在不同的DataNode服務器上,而咱們的MapReduce的Split只是邏輯切割。
所謂的邏輯切割會判斷切割處是否是行分隔符,換句話說,他在切割文件的時候並不能想物理切割哪有按照指定大小切割,而是選擇整行數據。
二.
Hadoop基礎-MapReduce的工作原理第二彈