Hadoop相关技术
生活随笔
收集整理的這篇文章主要介紹了
Hadoop相关技术
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.Hadoop 的優化與發展
1.1 局限與不足
- 抽象層次低,需要人工編碼;
- 表達能力有限;
- 開發者自己管理作業之間的依賴關系;
- 難于看到程序的整體的邏輯;
- 執行迭代操作效率低;
- 實時性差;
- 資源浪費;
1.2 改進與提升
- 對MapReduce 和HDFS兩大核心組件進行改進;
- 不斷豐富Hadoop組件,包括Pig,Tez,Spark和Kafka等。
二.HDFS2.0的新特性
2.1 HDFS HA:解決單點故障問題。
2.2 HDFS Federation
-
存在的問題
-
解決方式:HDFS Federation
- 解決單名稱節點存在的問題,解決了HDFS 的集群擴展性問題,性能更高效,具有良好的隔離性。
- 各自管理字節的命名空間;
三.新一代資源管理調度管家YARN
3.1 MapReduce 1.0 的缺陷
- 存在單點故障;
- JobTracker 任務過重;
- 容易出現內存溢出;
- 資源劃分不合理, Map Slot和Reduce Slot;
3.2 YARN 設計思路
分離出資源管理功能,單獨形成YARN,MapReduce 2.0變成了運行在YARN 上的純粹的計算框架。
- ResourceManager:負責資源管理;
- ApplicationMaster:負責任務調度和任務監控;
YARN 是一個資源管理調度框架。
3.3 YARN 體系結構
-
ResourceManager:全局資源管理器,負責整個系統的資源管理與分配,兩大核心組件如下;
- 調度器Scheduler;
- 接收來自ApplicationMaster的應用程序資源請求,把集群中的資源以“容器”的形式分配給提出申請的應用程序,容器的選擇通常會考慮應用程序所要處理的數據的位置,進行就近選擇從而實現“計算向數據靠攏”;
- 容器(Container)作為動態資源分配單位,每個容器都封裝了一定數量的CPU、內存、磁盤等資源,從而限定每個應用程序可以使用的資源數量。
- 調度器被設計成一個可插拔的組件,YARN不僅自身是提供了許多種直接可用的調度器,也允許用戶根據自己的需求重新設計調度器。
- 應用程序管理器Applications Manager
- 負責系統中所有應用程序的管理工作,主要包括應用程序提交、與調度器協商資源以啟動ApplicationMaster、監控ApplicationMaster 運行狀態并在失敗是重新啟動等;
- 調度器Scheduler;
-
ApplicationMaster
- ResourceManager接收用戶提交的作業,按照作業的上下文信息以及NodeManager收集來的容器狀態信息,啟動調度過程,為用戶作業啟動一個ApplicationMaster;
- 功能:
- 當用戶提交作業時,ApplicationMaster與ResourceManager協商獲取資源;
- ResourceManager會以容器的形式為ApplicationMaster分配資源;
- 把獲取的資源進一步分配給內部的各個任務(Map任務和Reduce 任務)實現資源的“二次分配”;
- 與NodeManager保持交互通信,進行應用程序的啟動、運行、監控和停止,監控申請到的資源的使用情況;
- 對所用任務的執行進度的和狀態進行監控,并在任務發生失敗時執行失敗恢復(即重新申請資源重啟任務);
- 定時向ResourceManager發送“心跳”信息,報告資源的使用情況和應用的進程信息;
- 當作業完成時,ApplicationMaster向 ResourceManager注銷容器,執行周期完成;
-
NodeManager
- NodeManager 是駐留在YARN集群中的每個節點上的代理,主要負責如下工作:
- 容器生命周期管理;
- 監控每個容器的資源使用情況;
- 以“心跳"的方式與ResourceManager保持通信;
- 向ResourceManager匯報作業的資源使用情況和每個容器的而運行狀態;
- 跟蹤節點健康狀況;
- 接收來自ApplicationMaster的啟動\停止容器的各種請求;
- NodeManager 是駐留在YARN集群中的每個節點上的代理,主要負責如下工作:
-
部署情況:
3.4 YARN 工作流程
- 用戶編寫客戶端應用程序,向YARN 提交應用程序;
- YARN 中的REsourceManager負責接收和處理來自客戶端的請求,為用程序分配一個容器,在該容器中啟動一個ApplicationMaster;
- ApplicationMaster 被創建后會首先向ResourceManager注冊;
- ApplicationMaster 采用輪詢的方式向ResourceManager申請資源;
- ResourceManager以容器的形式向提出申請的ApplicationMaster分配資源;
- 在容器中啟動任務;
- 各個任務向 ApplicationMaster 匯報自己的狀態和進度;
- 應用程序運行完成后ApplicationMaster向ResourceManager的應用程序管理器注銷并關閉自己;
3.5 YARN框架與MapReduce1.0框架的對比分析
3.6 YARN 發展目標
四.Hadoop 中代表性的組件
4.1 Pig 組件
4.2 Tez 組件
4.3 Spark 和 Kafka組件
總結
以上是生活随笔為你收集整理的Hadoop相关技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop伪分布式配置
- 下一篇: 【计算机网络复习 数据链路层】3.2 封