hadoop基礎知識總結

 

Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構。用戶能夠在不瞭解分佈式底層細節的狀況下,開發分佈式程序。充分利用集羣的威力進行高速運算和存儲。具備可靠、高效、可伸縮的特色。node

 

Hadoop生態圈:數據庫

MapReduce:分佈式計算框架windows

Yarn:集羣資源管理和調度平臺服務器

Hdfs:分佈式文件系統網絡

Hive:數據倉庫數據結構

HBase:實時分佈式數據庫架構

Flume:日誌收集工具框架

Sqoop:數據庫ETL工具jvm

Zookeeper:分佈式協做服務socket

Mahout:數據挖掘庫

 

Hadoop由4個主要構成部分:

 

1) 基礎核心:提供基礎的通用的功能,一組分佈式文件系統和通用I/O的組件與接口(序列化、Java RPC和持久化數據結構)

2) HDFS:分佈式存儲,高容錯性適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,適合那些有着超大數據集(large data set)的應用程序,HDFS塊的默認大小64 MB

3) MapReduce:分佈式計算

4) YARN:資源分配(多個任務是排隊執行仍是同時執行)

 

HDFS由3種主要的節點構成:

 

1) NameNode :用來存儲數據的存放位置等元數據(不存放數據)(如文件名、文件大小、文件所在目錄、全部者名稱、讀寫執行權限等)

2) DataNode :只用來存儲數據

3) SecondaryNameNode :輔助NameNode運行,將NameNode產生的元數據持久化到磁盤上,與NameNode進行通訊,以便按期地保存HDFS元數據的 快照,若是NameNode發生問題,SecondaryNameNode能夠及時地做爲備用NameNode使用。HDFS目前使用zookeeper來確保僅有一個活動namenode。

HDFS適用於高吞吐量,一次寫入,屢次讀取的應用場景,不適合大量小文件的存儲,低時間延遲,多用戶讀寫操做的場景。

 

HDFS 文件讀取
1. 首先建立RPC鏈接; 
2. 從namenode 中獲取文件數據塊的位置; 
3. 客戶端與datanode之間創建socket連接,選擇與客戶端最近的datanode節點; 
4. 下載文件的數據塊

 

HDFS 文件寫入

1. 建立RPC鏈接; 
2. 建立文件元數據; 
3. 爲文件分配塊; 
4. 客戶端與DataNode,DataNode之間創建socket(4,5,6),而且幾者之間socket均創建成功纔算成功,才能進行數據塊的寫入操做; 
5. 每一個DataNode接收完某個塊會向NameNode進行報告; 
6. 若是一個文件的每一個塊的三個副本中,只要有一個副本報告給NameNode,客戶端發送消息給NameNode確認文件完成;

MapReduce  並行計算框架

主從結構,一個JobTracker和多個TaskTracker

JobTracker:1做業調度2分配任務、監控任務執行進度3監控TaskTracker的狀態 
TaskTracker:一、執行任務 二、彙報任務狀態 

1) MapReduce是由一個單獨運行在主節點上的JobTacker和運行在每一個集羣從節點上的TaskTracker共同組成的。JobTacker負責調度構成一個做業的全部任務,這些任務分佈在不一樣的從節點上。總結點監控他們的執行狀況,而且從新執行以前失敗的任務;從節點僅負責由主節點指派的任務。

2)  MapReduce模型原理是利用一個輸入的key/value對集合來產生一個輸出的key/value隊集合,使用Map和Reduce函數來計算

3)  MapReduce將大數據分解爲成百上千小數據集,每一個數據集分別由集羣中的一個節點(通常是一臺計算機)並行處理生成中間結果,而後這些中間結果又由大量的節點合併,造成最終結果。

 

hadoop集羣三種模式

本地模式(單機模式),僞分佈模式,全分佈式模式

單機模式:沒有守護進程,全部東西運行在jvm上,使用的是本地文件系統, 沒有dfs,使用開發過程當中運行mapreduce程序,是使用最少的一種模式

僞分佈模式:在一臺服務器上模擬集羣安裝環境, 即多個進程運行在一個服務器上;使用與開發和測試環境,全部 守護進程在同一臺機子上

全分佈式模式:N臺主機組成一個Hadoop集羣,Hadoop守護進程運行在每一臺主機上;分佈式模式中,主節點和從節點會分開

網絡鏈接方式

host-only:宿主機(windows)與客戶機(虛擬機中的客戶機)單獨組網,與主機當前的網絡是隔離的

bridge:宿主機和客戶機網絡是鏈接的,在同一個局域網中,能夠相互訪問

NAT(network address translation): 虛擬機不佔用主機所在局域網ip,經過使用主機的NAT功能訪問區域網和互聯網,此種方式虛擬機不用設置靜態ip,只須要使用DHCP功能自動獲取ip便可(絕大多數上網使用此種方式)

相關文章
相關標籤/搜索