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