hadoop學習筆記

這段時間簡單的學習了一下hadoop平臺,初步有了一個認識,但是時間看的不多,覺得認識還很淺顯,主要看了下MapReduce和HDFS。在這裏總結一下。

一、概要認識

hadoop是有個用於開發並行計算和分佈式存儲系統的平臺。可以用普通的pc機來組成集羣,用來部署分佈式應用。主要包括兩部分,MapReduce和HDFS。

二、MapReduce

我的理解是,MapReduce是用來並行計算的,進行大規模的數據處理,通過MapReduce這個模型來處理分佈着在各個節點上的數據,來達到並行處理的目的。

現實生活的待處理問題可以通過這個模型來處理。MapReduce主要分爲兩個階段,一是Map階段,二是Reduce階段。

設計時主要是map和reduce函數,其中

map函數,顧名思義,是一個數據的映射,就是將一組key/value對映射到另一組key/value對,進行一個初步的處理,從而得到一箇中間數據。當然這個處理是根據實際情況,程序的需求來做出合適的映射。例如hadoop權威指南中的例子就是將輸入的一行行溫度信息,映射出“年份/溫度”這樣一個鍵值對。

而reduce函數,reduce其實是化簡的意思,是將有map階段的輸出做化簡,將具有相同鍵key的values合併,做更進一步處理,比如書上找出了相同key的values的最大值,其實也可求出平均數,根據實際需要去處理。

 

這裏提到的key-value其實是概念上的,具體到實際,要看你的設計。MapReduce編程模型當然需要一個文件系統來支持,hadoop中HSFS充當了這個角色。

三、HDFS

HDFS是一個分佈式的文件系統,HDFS適合很大數據量的應用,數據讀寫比較高效。HDFS採用master/slave的結構。一般來說,master上運行一個

Namenode節點,而slave上運行一個datanode節點。在master上運行一個Namenode,在一個slave上運行一個Datanode。
      Namenode很重要,可以控制文件的增刪改查。


四、心得

有了一個非常基本的認識,瞭解了一個大概的原理,但具體的細節不太清楚,一些接口函數可能還不太熟,另外腦子中還沒有一個比較清楚的實際模型。可能要通過實踐來

進一步掌握。


發佈了22 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章