hadoop是什麼?新手自學hadoop教程【附】大數據系統學習教程

Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構。

java


Hadoop是一個專爲離線和大規模數據分析而設計的,並不適合那種對幾個記錄隨機讀寫的在線事務處理模式。node

Hadoop=HDFS(文件系統,數據存儲技術相關)+ Mapreduce(數據處理),Hadoop的數據來源能夠是任何形式,在處理半結構化和非結構化數據上與關係型數據庫相比有更好的性能,具備更靈活的處理能力,無論任何數據形式最終會轉化爲key/value,key/value是基本數據單元。數據庫

用函數式變成Mapreduce代替SQL,SQL是查詢語句,而Mapreduce則是使用腳本和代碼,而對於適用於關係型數據庫,習慣SQL的Hadoop有開源工具hive代替。服務器

hadoop使用java編寫,版本較爲混亂,初學者可從1.2.1開始學習網絡

1.成百上千臺服務器組成集羣,須要時刻檢測服務器是否故障架構

2.用流讀取數據更加高效快速分佈式

3.存儲節點具備運算功能,省略了服務器之間來回傳數據的網絡帶寬限制函數

4.一次寫入,屢次訪問,不修改數據工具

5.多平臺oop

namenode:master,負責整體調度,處理協調請求等

(一個集羣只能有一個namenode,可是能夠多個集羣組成一個更大的集羣,這時就有多個namenode,這時的namenode有兩種狀態,一種叫active而且一個大集羣只能有一個namenode處於該狀態,一種爲standby)

namenode兩大功能:接受客戶端讀寫服務,存放元數據(DataNode存儲的位置等基本信息,fsimage和edits文件)

fsimage是namenode格式化時產生的,edits是用戶操做增刪改查的時候生成的日誌

datanode:slave,存儲節點,會備份,通常本地2分,其餘服務器一份

機架:多個DataNod節點組成,master經過機架感知技術得知所需數據的位置

數據塊:存儲單元,通常64M(hadoop2中是128M)

時刻保持心跳通信,保證每一個數據都備份於3個節點上

5的read爲第一個數據塊讀完後,讀下一個數據塊,若是在讀取過程當中某一個數據塊出問題,則會記錄下來而且找其餘的備份,而且之後再也不讀取錯誤數據塊

map負責分批運算,若是要統計1TB數據中my的出線次數,則能夠啓用100個map,每一個map統計0.01TB數據,最終由reduce彙總

做業(Job):運行一個MapReduce所須要用到的全部jar組件

任務(Task):mapTask和ReduceTask

Key相同的結果進行reduce統計合併

做業提交通常提交jar包和配置文件

調度通常來講默認採起FIFO調度,即先考慮優先級,而後先進先出

TaskTracker會不斷想JobTracker傳達任務信息,若是空閒會主動申請做業

通常的生產環境都是徹底分佈式模式。


以上資料能夠關注我公衆號:免費獲取

相關文章
相關標籤/搜索