大數據快速入門(三)--Hadoop海量數據處理讀書筆記-Hadoop原理

Hadoop是什麼

一個提供分佈式存儲和計算的軟件框架,具有無共享,高可用,彈性可擴展特點,適合處理海量數據

1.Hadoop生態圈

在這裏插入圖片描述

2.Hadoop架構

2.1 HDFS

2.1.1 HDFS的架構

在這裏插入圖片描述

  • NameNode
    NameNode是HDFS的大腦,維護整個系統的目錄樹,
  • SecondaryNameNode
    幫助NameNode合併文件系統元數據Log,並負責定期備份元數據,相當於NameNode的冷備。爲了解決熱備的問題,2.2後NameNode HA實現了對NameNode的熱備。
  • DataNode
    DataNode用於存放數據塊,在NameNode指導下完成I/O任務。可以在dfs.data.dir/current中看到這些塊(看起來一個普通文件)HDFS最小儲存單位是“塊”,默認64M,可由hdfs-site.xml中的dfs.block.size配置。每個塊在HDFS中的默認備份數是3,可由hdfs-site.xml中的dfs.relication配置。

2.1.2 HDFS容錯機制

  • 心跳機制:DataNode向NameNode發送心跳包,如無心跳則進行檢測,遷移副本
  • 檢測文件完整性:NameNode記錄校驗和,檢索和讀取時確認校驗,不一致則從其他備份獲取副本
  • 節點塊容量負載均衡
  • 備份NameNode上的元數據:通過SecondaryName備份
  • 文件刪除:不立即刪除,存放在/trash目錄,由hdfs-site.xml-fs.trash.internal配置留存時間

2.1.3 HDFS數據讀寫

塊的分佈:

  • 第一個副本隨機選擇節點
  • 第二個副本和第一個副本放在不同機架
  • 第三個副本和第二個放在同一機架 ,其他副本隨機安放

數據讀寫

  • 數據讀取
    在這裏插入圖片描述
  • 數據寫入
    在這裏插入圖片描述

2.1.4 HDFS訪問

  • 命令行
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  • Web UI
    http://localhost:9870/
    參考之前mac上安裝hadoop的文章,安裝完畢後打開本地環境的webUI,可以看到剛剛介紹的關於NameNode,DataNode,Block等信息
    在這裏插入圖片描述

2.2 YARN

在之前安裝hadoop的時候配置過yarn的xml,YARN是hadoop的資源管理和調度平臺,採用雙層調度器結構,由ResourceManager和NodeManager兩類進程組成。

如下圖所示,container是YARN的資源表示模型。ResourceManager是一級調度器,ApplicationMaster是二級調度器,運行在container中。
在這裏插入圖片描述
下圖是當客戶端提交一個應用後的操作,YARN有自己的命令行,終端中輸入yarn可以查看。通過yarn命令行,可以配置各種資源管理機制和參數。
在這裏插入圖片描述

2.3 MapReduce

MapReduce使用Map和Reduce兩個簡單思想處理對數據的作業。Map輸出鍵值對,Reduce對相同進行累加計數。安裝好hadoop後可以通過mapred-site.xml配置相關參數。

2.3.1 MapReduce實現WordCount

在這裏插入圖片描述

  • split :InputSplit只做邏輯上的分割,MinSize由mapred-site.xml中的mapreduce.input.fileinputformat.split,minsize決定。MaxSize由FileInputFormat的setMaxInputSplitSize決定,SplitSize可以和BlockSize不一樣。splite可以將行號作爲鍵,把鍵值對傳給map函數
  • map :Map函數對split輸出的鍵值對進行處理,生產中間的鍵值對,並輸入在內層緩存區中,並做partion和sort操作。緩存區大小由mapreduce.task.io.sort.mb配置。當文件大小超過緩存區,則寫入mapreduce.cluster.local.dir指定的硬盤。map函數的輸出可以壓縮,由mapreduce.output.fileoutputformat.compress=true指定
  • combiner: combiner相當於在map端做一次reduce,count,sum,min,max可以使用combiner,減輕reduce端壓力。如果指定了combiner,會在map結果寫入磁盤前,對map後的partion做排序和統計
  • shuffle:類比洗牌,把相同花色(相同鍵值)都洗在一起,發給對應都reduce
  • reduce :對輸入進行reduce操作,規約出結果集
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章