好程序員大數據學習路線Hadoop學習乾貨分享

  好程序員大數據學習路線Hadoop學習乾貨分享,Apache Hadoop 爲可靠的,可擴展的分佈式計算開發開源軟件。

Apache Hadoop軟件庫是一個框架,它允許使用簡單的編程模型跨計算機羣集分佈式處理大型數據集(海量的數據)。

包括這些模塊:

  • Hadoop Common:支持其他Hadoop模塊的常用工具。
  • Hadoop分佈式文件系統(HDFS™):一種分佈式文件系統,可提供對應用程序數據的高吞吐量訪問。
  • Hadoop YARN:作業調度和集羣資源管理的框架。
  • Hadoop MapReduce:一種用於並行處理大型數據集的基於YARN的系統。

上述每個模塊有自己獨立的功能,而模塊之間又有相互的關聯。

廣義上來說,HADOOP通常是指一個更廣泛的概念——HADOOP生態圈

可靠,可擴展的分佈式計算的開源軟件,由HDFS、MapReduce、YARN組成。

HDFS

Hadoop分佈式文件系統,一般由一到兩個Namenode進程和若干Datanode進程組成,在實現了HA機制的HDFS中,還有ZKFC進程(一般跟NameNode進程運行在同一臺計算機上)和多個JN進程。

節點

運行Namenode或Datanode進程的機器稱之爲節點,對應的運行Namenode進程的機器稱之爲Namenode節點,運行Datanode進程的機器稱之爲Datanode節點,這裏的機器可以是物理機也可以是虛擬機。

Mapreduce

分佈式並行離線計算框架,是一個分佈式運算程序的編程框架,是用戶開發“基於hadoop的數據分析應用”的核心框架,Mapreduce核心功能是將用戶編寫的業務邏輯代碼和MR自帶默認組件整合成一個完整的分佈式運算程序,併發的運行在一個hadoop集羣上;與HDFS解決問題的原理類似,HDFS是將大的文件切分成若干小文件,然後將它們分別存儲到集羣中各個主機中。同樣原理,mapreduce是將一個複雜的運算切分成若個子運算,然後將它們分別交給集羣中各個主機,由各個主機並行運算。

名詞解釋

  • Job :用戶的每一個計算請求稱爲一個作業。
  • Task:每一個作業,都需要拆分開了,交由多個主機來完成,拆分出來的執行單位就是任務。Task又分爲如下三種類型的任務:

    • Map:負責map階段的整個數據處理流程
    • Reduce:負責reduce階段的整個數據處理流程
    • MRAppMaster:負責整個程序的過程調度及狀態協調

YARN

Yet Another Resource Negotiator(好吧,另一種資源協調者),作業調度和集羣資源管理的框架,由ResourceManager和NodeManager組成,ResourceManager有兩個主要組件:Scheduler和ApplicationsManager。

Scheduler

調度程序負責根據熟悉的容量,隊列等約束將資源分配給各種正在運行的應用程序。調度程序是純調度程序,因爲它不執行應用程序狀態的監視或跟蹤。此外,由於應用程序故障或硬件故障,它無法保證重啓失敗的任務。調度程序根據應用程序的資源需求執行其調度功能; 它是基於資源Container的抽象概念,它包含內存,cpu,磁盤,網絡等元素。

ApplicationsManager

負責接受作業提交,協商第一個容器以執行特定於應用程序的ApplicationMaster,並提供在失敗時重新啓動ApplicationMaster容器的服務。每個應用程序ApplicationMaster負責從Scheduler協商適當的資源容器,跟蹤其狀態並監視進度。

Zookeeper

分佈式應用程序的分佈式協調服務,由多個QuorumPeerMain進程組成,本質上這些進程功能類似,但是在zookeeper運行過程中,會由其中的一個進程充當leader角色,剩餘進程充當follower角色。

znode

zookeeper內部維護的處於內存中的樹狀數據結構中的一個組成部分,即樹狀數據結構中的節點,具有權限、類型、版本等相關元信息,和子節點、父節點、自身內容等其他相關信息。zookeeper負責監控節點的變化狀態,包括節點的新增、刪除、內容變更、子節點變更,但是zookeeper不負責某個節點發生變化之後的動作,變化之後zookeeper可以告知這個節點的Watcher,然後由這個watcher負責處理。

HA

所謂HA,即高可用(7*24小時不中斷服務)(secondarynamenode只是保證了“可靠性”)實現高可用最關鍵的是消除單點故障,hadoop-ha嚴格來說應該分成各個組件的HA機制——HDFS的HA、YARN的HA。

  • HDFS的HA機制詳解:通過雙namenode消除單點故障,雙namenode協調工作的要點:

    • 元數據管理方式需要改變
    • 需要一個狀態管理功能模塊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章