Hadoop V1到Hadoop V2的主要變化

2021-07-02 17:03:52 字數 2433 閱讀 8568

**:

一、消失的概念與新鮮的名詞

hadoop v2相對於hadoop v1的變化主要在於資源管理和任務排程,計算模型仍然保持map/reduce的模型。資源管理和任務排程的變化導致了工作流程的變化,一些概念消失而一些概念又出現。  

1、jobtrack與tasktrack

jobtrack和tasktrack在hadoop舊版本(hadoop0.x及hadoop1.x)中是非常重要的概念。jobtrack對系統中的所有job進行統一的管理,同時為job分配相應的tasktrack,還需要與所有的tasktack通訊以更新job的任務進度和執行狀況。jobtrack只有乙個,儘管hadoop v1為了降低其容錯率,增加了備份jobtrack,但是其單點容錯率所造成的瓶頸仍舊是不可避免的。tasktrack執行本地任務和利用本地資源,向jobtrack報告任務狀態並執行jobtrack指令。tasktrack將任務的執行硬性劃分為map task splot和reduce task splot,在資源利用和任務執行上都降低了效率。

jobtrack和tasktrack的體系是hadoop v1的鮮明特徵,但是其缺點也隨著hadoop集群的job數量的增加而越來越明顯。並且,這種體系要求系統在更新時需要更新每乙個jobclient的tasktrack,而後又需要使用者來測試新的系統是否支援原來的程式,系統維護難度增大。因此,在hadoop v2中,jobtrack和tasktrack的概念就消失了。

hadoop v2將jobtrack的功能進行了拆分,從而降低其單點容錯性,由此出現了資源管理器和應用主體。同時,將tasktrack所在的jobclient的功能增強,出現了節點管理器,並且通過應用主體來鏈結到資源管理器。

資源管理器對集群全域性的資源進行管理,並且hadoop v2的資源管理與hadoop v1的資源又有所區別,主要在於hadoop v2將記憶體作為了資源管理單元——資源容器——的核心因素之一。資源管理器分為排程器和應用管理器,排程器主要負責任務資源的分配和任務的排程,而應用管理器負責與應用主體進行通訊,獲取節點的資訊並通知給排程器作為參考。

應用主體伴隨著應用而生,每乙個應用都有乙個應用主體。應用主體存在於節點上,與節點管理器相互協助對節點上的任務和資源進行管理。應用主體統一與應用管理器通訊,但是並不是受應用管理器的管理,應用管理器只負責啟動應用主體並管理其生命週期(與相應的節點管理器通訊來啟動應用主體)。如果乙個應用的資源容器存在於不同的節點上,其應用主體還需要與其他節點上的節點管理器通訊來獲取相應資源容器的資訊。

節點管理器是節點上的框架管理器,獲取整個節點上的資源容器狀況,與排程器通訊來使用資源容器,與應用管理器通訊來啟動應用主體。

二、hadoop v2工作流程

前一篇隨筆已經結合原始碼詳細的分析了hadoop v1的工作流程,在hadoop v2中工作流程與之有所不同,資訊流主要在資源管理器(包括應用管理器和排程器)、應用主體、節點管理器和資源容器之間流動。

圖中每一步的具體功能如下:

1:使用者提交任務給資源管理器中的應用管理器,首先會由框架給此任務分配乙個任務id,然後寫入hdfs使用者應用快取,再提交該應用給應用管理器。

2:應用管理器與排程器協調獲取該應用的應用主體所需要的資源容器

3:由應用管理器啟動節點管理器上的應用主體

4:應用主體計算自身所需的資源容器數量並通知排程器

5:排程器根據應用主體的申請和自身的資源統計,為應用主體分配適當的資源容器

6:應用主體與資源容器所在的節點管理器通訊,獲取資源容器的使用權

7:節點管理器查詢自身資源容器的使用情況,啟動相應的資源容器來執行任務

8:被確定分配給應用主體的資源容器實時與應用主體通訊,報告任務進度和狀態

9:應用主體將作業的執行狀態反饋給使用者

三、容錯機制

hadoop v1的容錯機制比較簡單,即通過冗餘副本解決節點宕機或隨機錯誤。datanode上的任務塊在本地儲存空間和其他datanode中均存在乙份副本,這樣可以在任務失敗或節點宕機的情況下可以重新執行或由其他節點重新啟動任務。而namenode出現問題將是非常嚴重的錯誤,只能進行任務的重新執行。

hadoop v2的容錯機制比較完善,是利用log來解決的。應用管理器是記錄log的部件,它會在監督任務的map和reduce操作的同時記錄log,標明已經完成的map和reduce任務,因此在節點宕機或者任務出錯時只需根據log啟動未完成的map任務和reduce任務即可。如果資源管理器出現問題,會根據zookeeper儲存的資源管理器狀態進行自我恢復。由於任務執行時主要由應用主體進行監督,所以對資源管理器的依賴度有所減小。

spark的容錯機制與hadoop v2的有一點類似:rdds使用lineage來恢復出現問題的rdd,而lineage的作用就是記錄粗粒度的資料轉換操作,這可以為rdd的恢復提供完整的資料。

Hadoop學習筆記1 初識Hadoop

資料越來越多,資料的增長越來越快,儲存和分析這些資料成為挑戰!當資料量逐漸變大時,單個磁碟的讀寫速度成為瓶頸。解決辦法是,將資料分散儲存,通過並行讀取提高讀寫資料。要達到這種目的,面臨的2個問題 hadoop的hdfs和mapreduce為這兩個問題提供了解決方案。為什麼不能用關係型資料庫 更多磁碟...

hadoop資料遷入到hive

由於很多資料在hadoop平台,當從hadoop平台的資料遷移到hive目錄下時,由於hive預設的分隔符是 為了平滑遷移,需要在建立 時指定資料的分割符號,語法如下 create table test uid string,name string row format delimited fiel...

Hadoop學習篇 之 1初識Hadoop

為什麼要創造 發明 使用 hadoop?hadoop的存在有什麼意義?資料的儲存面臨一系列的問題 雖然磁碟儲存容量快速增加,但訪問速度並沒有太大的變化。要實現對多個磁碟資料的並行讀寫,還有更多的問題要解決。總之,hadoop有著可靠的共享儲存和分析系統。hdfs實現儲存,而mapreduce實現分析...