1. 程式人生 > >Hadoop基礎-MapReduce的工作原理第二彈

Hadoop基礎-MapReduce的工作原理第二彈

原理 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的工作原理第二彈