您好,登錄后才能下訂單哦!
這篇文章主要介紹“Hadoop的相關概念及系統組成”,在日常操作中,相信很多人在Hadoop的相關概念及系統組成問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hadoop的相關概念及系統組成”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一:Hadoop的相關概念
1、Hadoop是一個基于java語言的MapReduce框架。
2、Hadoop的改進: a、Hadoop Streaming--任何命令行腳本都可以通過Streaming調用MapReduce框架。 b、Hadoop Hive:Apache Hive可以把海量數據集放入數據倉庫中,用戶可以編寫類似SQL語句的Hive查詢語句來查找數據,Hive引擎把Hive查詢語句透明的轉換為底層MapReduce任務來執行,高級用戶可以使用Java語言來編寫用戶自定義函數(UDF)。Hive也支持標準的ODBC、JDBC數據庫驅動。Hive還可以用來開發商業智能分析程序去處理分析存放在Hadoop中的數據。 c、Pig:過程性語言,是一種探索大規模數據集的腳本語言。用于描述數據流的語言,稱為 Pig latin. d、HBse:一個在HDFS上開發的面向列的分布式數據,可以實時的隨機訪問超大規模數據集。
3、剛開始的時候,Hadoop系統只能做到用戶提交任務之后,以先進先出的模式在集群上執行任務。為了解決這樣的問題,Hadoop中出現了更加復雜的任務調度器:公平調度器,計算能力調度器。
4、Hadoop 2.x 相較于 1.x解決了擴展性問題。
二:MapReduce編程模型簡介
5、MapReduce模型有兩個彼此獨立的步驟,這兩個步驟都是可以配置并需要用戶在程序中自定義。 Map:數據初始讀取和轉換步驟,在這個步驟中,每個獨立的輸入數據記錄都進行并行處理。 Reduce:一個數據整合或者加和的步驟。在這個步驟中,相關聯的所有數據記錄都要放在一個計算節點來處理。
6、Hadoop系統中的MapReduce核心思路: a、將輸入的數據在邏輯上分割成多個數據塊,每個邏輯數據塊被Map任務單獨處理。 b、數據塊處理后所得結果會被劃分到不同的數據集,且將數據集排序完成。 c、每個經過排序的數據集傳輸到Reduce任務進行處理。
7、一個Map任務可以在集群的任何節點上運行,多個Map任務可以并行的運行在集群上。Map任務的主要作用是把輸入的數據記錄轉換為一個個鍵值對。所有Map任務的輸出數據都會進行分區,并且將每個分區的數據排序。每個分區對應一個Reduce任務。
三:Hadoop系統的組成
8、Hadoop 1.x守護進程 a、名稱節點(NameNode):維護存儲在HDFS上的所有文件的元數據。 b、數據節點(DateNode):把真正的數據塊存放在本地硬盤上,這些數據塊組成了保存在HDFS上的每個文件。 c、作業跟蹤器(JobTracker):負責一個任務的整個執行過程。調度各個子任務到各自的計算節點運行,時刻監控任務運行和計算節點的健康情況,對失敗的子任務進行重新調度。 d、任務跟蹤器(TaskTracker):運行在各個數據節點上,用來啟動和管理各個Map/Reduce任務,與作業跟蹤器進行通信。
9、Hadoop系統任務分工(1.x): 主節點(Master):NameNode/Secondary NameNode/JobTracker 從節點(Save):DateNode/TaskTracker
10、HDFS系統提供一個統一的文件系統命名空間,用戶就像使用一個文件系統一樣來存取集群節點上的數據。
11、Hadoop文件的本質是塊存儲,有3個備份,存儲在數據節點上。
12、Hadoop借助一個單獨配置的網絡拓撲文件實現機架感知能力,這個網絡拓撲文件配置了機架到計算節點的域名(DNS)名稱之間的映射。
13、名稱節點上的關鍵文件: a、fsimage:保存了最近的一次檢查點的HDFS系統元數據的持久化狀態信息。 b、edits:保存了最近的一次檢查點之后到現在的HDFS系統元數據的狀態變化信息。 c、fstime:保存了最近一次檢查點的時間戳。
14、任務跟蹤器(TaskTracker):接收MapReduce和shuffle這些操作任務的請求,任務跟蹤器接受到一個來自作業跟蹤器的請求之后,就會啟動一個任務,任務跟蹤器會為這個任務初始化一個新的JVM。
15、作業跟蹤器(JobTracker):啟動和監控MapReduce作業。
四:Hadoop 2.x (YARN):
16、組成:全局資源管理器,節點管理器,針對每種應用程序的應用程序管理器,調度器,容器
17、一部分CPU內核和一部分內存構成了一個容器。一個應用程序運行在一個容器內,應用程序管理器的一個實例會向全局資源管理器請求獲取資源。調度器會通過每個節點的節點管理器來分配資源(容器)。節點管理器會向全局資源管理器匯報每個容器的使用情況。
18、集群節點與容器之間的關系是:一個節點可以運行多個容器,但一個容器只能運行在一個節點之內。
19、Hadoop 2.x 解決了原先只能使用MapReduce框架的問題,現在可以在2.x系統上運行更多的框架。
到此,關于“Hadoop的相關概念及系統組成”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。