Hadoop自學筆記

互聯網項目的不斷實施擴展壯大,數據資源肯定是越來越豐富的。

大數據技術 ,我覺得在3-5年後會是一個常態技能。

要實施大數據技術,數據源是一個基石。

下面是自學Hadoop的一個總結:

Hadoop是一個開源的大數據框架

Hadoop是一個分佈式計算的解決方案
Hadoop=HDFS分佈式文件系統+MapReduce分佈式計算解決方案
HDFS 分佈式文件系統:存儲是大數據技術的基礎
MapReduce編程模型:分佈式大數據應用的解決方案

HDFS 
數據塊 數據塊是抽象塊而非整個文件作爲存儲單元
默認大小爲64MB,一般設置爲128M,備份X3
一個NameNode:主節點、備節點
管理文件系統的命名空間,存放文件元數據
維護着文件系統的所有文件和目錄,文件與數據塊的映射,
記錄每個文件中各個塊所在的數據節點的信息
多個DataNode:
存儲並檢索數據庫,向NameNode更新所存儲塊的列表
寫流程:
客戶端向NameNode發起寫請求,
數據分塊寫入DataNode節點,DataNode自動完成副本備份
DataNode向NameNode彙報存儲完成,NameNode通知客戶端
讀流程:
客戶端向NameNode發起讀數據請求
NameNode找出距離最近的DataNode節點信息
客戶端從DataNode分塊下載文件

MapReduce
是一種編程模型,是一種編程方法的抽象理論
YARN概念 Hadoop2.0資源管理器
ResourceManager
分配和調度資源,啓動並監控ApplicationMaster,監控NodeManager
ApplicationMaster
爲MR類型的程序申請資源,並分配給內部任務,負責數據的切分,監控任務的執行及容錯。
NodeManager
管理單個節點的資源,處理來自ResourceManager的命令,處理來自ApplicationMaster的命令。
MapReduce編程模型 - 分而治之
輸入一個大文件,通過Split之後,將其分成多個分片
每個文件分片由單獨的機器去處理,這就是Map的方法
將各個機器的計算的結果進行彙總並得到最終的結果,這就是Reduce方法。

HBase
分佈式數據庫
利用HDFS作爲其文件存儲系統 ,支持MapReduce程序讀取數據
存儲非結構化和半結構化的數據 當然也支持結構化數據
RowKey:數據唯一標識,主鍵,按字典排序
Cloumn Family:列族,多個列的集合,最多不用超過3個
TimeStamp時間戳:支持多版本數據同時存在
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章