hadoop

Hadoop理論java

一.簡介node

Hadoop是Apache軟件基金會旗下的一個開源分佈式計算平臺,以Hadoop分佈式文件系統(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)爲核心的Hadoop爲用戶提供了系統底層細節透明的分佈式基礎架構。linux

模仿了goole的大數據開源,在linux平臺下,以java運行的。瀏覽器

二.各節點做用服務器

對於Hadoop的集羣來說,能夠分紅兩大類角色:Master和Salve網絡

wKiom1e26kngPc5BAAC79-QscnU762.png-wh_50 

 

主節點包括名稱節點(namenode)、從屬名稱節點(secondary namenode)和 jobtracker 守護進程(即所謂的主守護進程)以及管理集羣所用的實用程序和瀏覽器。架構

從節點包括 tasktracker 和數據節點( datanade從屬守護進程)。框架

兩種設置的不一樣之處在於,主節點包括提供 Hadoop 集羣管理和協調的守護進程,而從節點包括實現Hadoop 文件系統(HDFS)存儲功能和 MapReduce 功能(數據處理功能)的守護進程。分佈式

每一個守護進程在 Hadoop 框架中的做用ide

Namenode : Hadoop 中的主服務器,它管理文件系統名稱空間和對集羣中存儲的文件的訪問。

Secondary namenode: 它不是namenode 的冗餘守護進程,而是提供週期檢查點和清理任務。在每一個 Hadoop 集羣中能夠找到一個 namenode 和一個 secondary namenode。

Datanode : 管理鏈接到節點的存儲(一個集羣中能夠有多個節點)。每一個存儲數據的節點運行一個 datanode 守護進程。是真正的存儲數據塊的工做節點。

Jobtracker : 每一個集羣有一個 jobtracker它負責調度 datanode 上的工做,能夠分配任務,監控任務執行進度,還可監控tasktracker的狀態。

Tasktracker : 每一個 datanode 有一個tasktracker,它們執行實際工做,彙報任務的執行狀態。jobtracker 和 tasktracker 採用主-從形式jobtracker 跨datanode 分發工做,而 tasktracker 執行任務。jobtracker 還檢查請求的工做若是一個datanode 因爲某種緣由失敗jobtracker 會從新調度之前的任務。

PS : OOM ( out of memory ),在hadoop 下可能會比較常出現OOM

 

三.HDFS  MapReduce

Hadoop是一個開源的,分佈式存儲+分佈式計算平臺的。

Hadoop的組成能夠包括 HDFS(分佈式文件系統,存海量的數據);MapReduce(並行處理框架,實現任務分解和調度);還能夠包括其餘的開源工具,如HIVE HBASE zookeeper。

HDFS和MapReduce共同組成了Hadoop分佈式系統體系結構的核心。HDFS在集羣上實現分佈式文件系統,MapReduce在集羣上實現了分佈式計算和任務處理。

HDFS集羣是由一個NameNode和若干個DataNode組成的。其中NameNode做爲主服務器,管理文件系統的命名空間和客戶端對文件系統的訪問操做;集羣中的DataNode管理存儲的數據。

MapReduce框架是由一個單獨運行在主節點上的JobTracker和運行在每一個集羣從節點的TaskTracker共同組成的。主節點負責調度構成一個做業的全部任務,這些任務分佈在不一樣的從節點上。主節點監控它們的執行狀況,而且從新執行以前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接收到提交做業和配置信息以後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。MapReduce可分爲Map + Reduce,Map能夠理解爲將一個大任務分紅多個小任務,Reduce則是在並行執行後,合成結果。

HDFS在MapReduce任務處理過程當中提供了文件操做和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工做,並收集結果,兩者相互做用,完成了Hadoop分佈式集羣的主要任務。

 

四.Hadoop2.X 版本

HDFS 的改進:加強了namenode的水平擴展及高可用性

能夠同時部署多個namenode,這些namenode之間是相互獨立的,不須要相互協調,datanade同時在全部的namenode中註冊,做爲它們的共有的存儲節點,向全部的namenode發送心跳

MapReduce的改進:YARN+MapReduce

將資源管理和做業管理分開,資源管理(ResourceManager)由新增的系統YARN實現。

Resourcemanager和每臺機器上的NodeManager服務,用來管理用戶進程,造成計算架構。Nodemanager是Resourcemanager在每臺服務器上代理,負責容器的管理,並監控資源使用狀況,如CPU,內存,網絡等,以及向Resourcemanager提供資源使用報告

相關文章
相關標籤/搜索