熱線電話:13121318867

登錄
首頁大數據時代大數據分析師教程-2.1 Hadoop入門-Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的革新
大數據分析師教程-2.1 Hadoop入門-Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的革新
2024-10-23
收藏

大數據分析師培訓教程-2.1 Hadoop入門-Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的革新

Hadoop簡介

Apache Hadoop存儲和處理大數據的開源軟件框架 Hadoop項目

Hadoop能夠在上千臺機器組成的集群上運行大規模集群可靠性,不能僅僅靠硬件來保證,因為節點的失敗、網絡的失敗等狀況不可避免,為了能夠在大規模集群上順利運行,Hadoop的所有模塊,其設計原則基于這樣的基本假設,即**硬件的失敗在所難免,每個節點都沒有那么可靠,可能發生節點失敗狀況,軟件框架應該能夠自動檢測和處理這些失敗情況。 Hadoop通過軟件,在大規模集群上提供高度的可用性(High Availability)

Hadoop 的生態系統

  1. HiveHadoop平臺上的數據倉庫,用于對數據進行離線分析。它提供了一種類 似于SQL的查詢語言HQL (Hive Query Language)。HiveSQL轉化為 MapReduce作業(Job)在Hadoop上執行。

  2. HBase是Google Big Table在Hadoop平臺上的開源實現。它是一個針對結構化數 據處理的、面向列分組(Column Family)的、可伸縮的、高度可靠的、高性能的分 布式數據庫。一般用于數據服務(Data Serving)應用場合。

  3. Pig實現了數據查詢腳本語言Pig Latin。用Pig Latin腳本語言編寫的應用程序,翻 譯為MapReduce作業,在Hadoop上運行

  4. Flume是一個可擴展的、高度可靠的、高可用的分布式海量日志收集系統,一般 用于把眾多服務器上的大量日志,聚合到某一個數據中心。Flume提供對日志數 據進行簡單處理的能力,比如過濾、格式轉換等。同時,Flume可以將日志寫往 各種目標(本地文件、分布式文件系統)。

  5. Sqoop是SQL to Hadoop的縮寫,主要用于在關系數據庫或者其它結構化數據源 和Hadoop之間交換數據

  6. Mahout是Hadoop平臺上的機器學習軟件包,它的主要目標是實現高度可擴展的 機器學習算法,以便幫助開發人員利用大數據進行機器學習模型訓練。Mahout現 在已經包含聚類、分類、推薦引擎(協同過濾)、頻繁集挖掘等經典數據挖掘和機 器學習算法。

  7. Oozie是一個工作流調度器(Scheduler)。Oozie協調運行的作業,屬于一次性非 循環的作業,比如MapReduce作業、Pig腳本、Hive查詢、Sqoop數據導入/導出 作業等。Oozie基于時間、和數據可用性進行作業調度,根據作業間的依賴關 系,協調作業的運行

  8. Zookeeper是模仿Google公司的Chubby系統的開源實現,Chubby是一個分布式 的鎖(Lock)服務

HDFS 的原理及其讀寫過程

原理:

  1. HDFS,是一個分布式的、高度可擴展的文件系統。
  2. 一個HDFS集群,一般由一個NameNode和若干DataNode組成,分別負責元信息 的管理和數據塊的管理 . HDFS支持TB級甚至PB級大小文件的存儲;
  3. 它把文件劃分成數據塊(Block),分布到多臺機器上進行存儲;
  4. 為了保證系統的可靠性,HDFS把數據塊在多個節點上進行復制(Replicate)
  5. 采用心跳機制確認節點可用:
  6. DataNode默認每秒像NameNode匯報一次,向NameNode匯報狀態信息,并且返 回NameNode對DataNode的操作命令
  7. 如果某一時刻DataNode不匯報,可能宕機 . NameNode超過十分鐘沒有收到DataNode的心跳,則認為該節點不可用 寫文件
  8. 客戶端通過Distributed FileSystem模塊向NameNode請求上傳文件,NameNode檢 查目標文件是否已存在,父目錄是否存在。
  9. NameNode返回是否可以上傳。 . 客戶端請求第一個 Block上傳到哪幾個DataNode服務器上。
  10. NameNode返回個DataNode節點,分別為DataNode1、DataNode2、DataNode。 5. 客戶端通過FSDataOutputStream模塊請求DataNode1上傳數據,DataNode1收到 請求會繼續調用DataNode2,然后DataNode2調用DataNode,將這個通信管道建立 完成。
  11. DataNode1、DataNode2、DataNode逐級應答客戶端。
  12. 客戶端開始往DataNode1上傳第一個Block(先從磁盤讀取數據放到一個本地內存 緩存),以Packet為單位,DataNode1收到一個Packet就會傳給DataNode2, DataNode2傳給DataNode;DataNode1每傳一個packet會放入一個應答隊列等待應 答。
  13. 當一個Block傳輸完成之后,客戶端再次請求NameNode上傳第二個Block的服務 器。(重復執行-7步)。

讀文件

  1. 客戶端通過DistributedFileSystem向NameNode請求下載文件,NameNode通過 查詢元數據,找到文件塊所在的DataNode地址。
  2. 挑選一臺DataNode(就近原則,然后隨機)服務器,請求讀取數據。 . DataNode開始傳輸數據給客戶端(從磁盤里面讀取數據輸入流,以Packet為單 位來做校驗)。
  3. 客戶端以Packet為單位接收,先在本地緩存,然后寫入目標文件。

Hadoop 1.0 的局限與 Hadoop 2.0(YARN)的原理是什么?

在大數據處理的領域中,Hadoop 可謂是一位 “重量級選手”。然而,就像任何技術一樣,Hadoop 1.0 也有它的不足之處。

Hadoop 1.0 存在著明顯的單點故障問題。這就好比一個團隊中,如果關鍵人物出了問題,整個團隊的運作可能就會陷入混亂。在 Hadoop 1.0 中,一旦 NameNode 這個關鍵節點出現故障,整個系統就可能面臨崩潰的風險。

而且,它的資源管理方式也不夠靈活。就好像分配房間,如果只有一種固定的分配方式,很難滿足各種不同的需求。

不過,技術總是在不斷進步的。Hadoop 2.0(YARN)的出現,給我們帶來了新的希望。

YARN 的原理就像是一個更聰明的 “管家”。它把資源管理和任務調度分開了。ResourceManager 就像是大管家,負責整體資源的分配和監控。而 ApplicationMaster 則像是每個任務的小管家,專門負責自己任務的資源申請和調度。

這種分離的方式,讓系統的擴展性大大增強。就好比原來的房子不夠住了,現在可以很方便地加蓋新的房間,而不會影響原來的居住者。

同時,容錯性也得到了提高。即使某個 “小管家” 出了問題,也不會讓整個 “家” 亂了套。

資源利用率也因為這種更精細的管理而得到了提升,不再有資源浪費或者分配不均的情況。

Hadoop 1.0 的局限

  1. 它僅僅支持一種計算模型,即MapReduce。MapReduce計算模型的表達能力有 限,尤其是復雜的數據處理任務
  2. MapReduce作業通過磁盤進行數據交換,效率低下,影響了查詢的執行效率。
  3. Hadoop 1.0的任務調度方法,遠未達到優化資源利用率的效果。

Hadoop 2.0(YARN)的原理

YARN(Yet Another Resource Negotiator)

  1. 在新的架構里,包含ResourceManager和NodeManager兩個重要的組件。 ResourceManager運行在Master節點上,NodeManager運行在Slave節點上,一起負 責分布式應用程序的調度和運行
  2. ResourceManager是為應用程序分配資源的最高權威。ResourceManager包含兩個組件,包括Scheduler和ApplicationManager

總的來說,Hadoop 2.0(YARN)的出現,解決了 Hadoop 1.0 的很多痛點,讓大數據處理變得更加高效、可靠和靈活。相信在未來,它還會不斷進化,為我們處理大數據帶來更多的便利和驚喜!

Hadoop 2.0 的主要優勢有哪些?

    1. 擴展性:

ResourceManager的主要功能,是資源的調度工作。所以它能夠輕松地 管理更大規模的集群系統,適應了數據量增長對數據中心的擴展性提出的挑戰。

    1. 更高的集群使用效率:

ResourceManager是一個單純的資源管理器,它根據資源 預留要求、公平性、服務水平協議(Service Level Agreement, SLA)等標準,優化 整個集群的資源,使之得到很好的利用。

Hadoop1.0平臺上開發的 MapReduce應用程序,無需修 改,直接在YARN上運行。

    1. 支持更多的負載類型:

數據存儲HDFS以后,用戶希望能夠對數據以不同的 方式進行處理。除了MapReduce應用程序(主要對數據進行批處理),YARN支持 更多的編程模型,包括圖數據的處理、迭代式計算模型、實時流數據處理、交互 式查詢等。一般來講,機器學習算法需要在數據集上,經過多次迭代,才能獲得 最終的計算結果。

    1. 靈活性: MapReduce等計算模型可以獨立于資源管理層,單獨演化和改進。使 得系統各個部件的演進和配合,更加具有靈活性

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢