启动hadoop没有resourcemanager_5.hadoop-MR YARN架构理论与集群搭建
MR原語
輸入(格式化k,v)數據集?map映射成一個中間數據集(k,v)?reduce
相同"的key為一組,調用一次reduce方法,方法內迭代這一組數據進行計算
計算框架
Partition
Partition主要作用就是將map的結果發送到相應的reduce。這就對partition有兩個要求:
1)均衡負載,盡量的將工作均勻的分配給不同的reduce。
2)效率,分配速度一定要快。
Shuffle
:框架內部實現機制
分布式計算節點數據流轉:連接MapTask與ReduceTask
樣例
理解
Map:
讀懂數據
映射為KV模型
并行分布式
計算向數據移動
Reduce:
數據全量/分量加工
Reduce中可以包含不同的key
相同的Key匯聚到一個Reduce中
相同的Key調用一次reduce方法
排序實現key的匯聚
K,V使用自定義數據類型
作為參數傳遞,節省開發成本,提高程序自由度
Writable序列化:使能分布式程序數據交互
Comparable比較器:實現具體排序(字典序,數值序等)
運行架構
MR1
MRv1角色:
JobTracker
核心,主,單點
調度所有的作業
監控整個集群的資源負載
TaskTracker
從,自身節點資源管理
和JobTracker心跳,匯報資源,獲取Task
Client
作業為單位
規劃作業計算分布
提交作業資源到HDFS
最終提交作業到JobTracker
弊端:
JobTracker:負載過重,單點故障
資源管理與計算調度強耦合,其他計算框架需要重復實現資源管理
不同框架對資源不能全局管理
MR2
hadoop YARN
YARN架構
YARN:解耦資源與計算
ResourceManager
主,核心
集群節點資源管理
NodeManager
與RM匯報資源
管理Container生命周期
計算框架中的角色都以Container表示
Container:【節點NM,CPU,MEM,I/O大小,啟動命令】
默認NodeManager啟動線程監控Container大小,超出申請資源額度,kill
支持Linux內核的Cgroup
YARN優勢
YARN:Yet Another Resource Negotiator;
Hadoop 2.0新引入的資源管理系統,直接從MRv1演化而來的;
核心思想:將MRv1中JobTracker的資源管理和任務調度兩個功能分開,分別由 ResourceManager和ApplicationMaster進程實現
ResourceManager:負責整個集群的資源管理和調度
ApplicationMaster:負責應用程序相關的事務,比如任務調度、任務監控和容錯等
YARN的引入,使得多個計算框架可運行在一個集群中
每個應用程序對應一個ApplicationMaster
目前多個計算框架可以運行在YARN上,比如MapReduce、Spark、Storm等
MRv2:On YARN
MR-ApplicationMaster-Container
作業為單位,避免單點故障,負載到不同的節點
創建Task需要和RM申請資源(Container)
Task-Container
Client:
RM-Client:請求資源創建AM
AM-Client:與AM交互
將MapReduce作業直接運行在YARN上,而不是由JobTracker和TaskTracker構建的MRv1系統中
基本功能模塊
YARN:負責資源管理和調度
MRAppMaster:負責任務切分、任務調度、任務監控和容錯等
MapTask/ReduceTask:任務驅動引擎,與MRv1一致
每個MapRduce作業對應一個MRAppMaster
MRAppMaster任務調度
YARN將資源分配給MRAppMaster
MRAppMaster進一步將資源分配給內部的任務
MRAppMaster容錯
失敗后,由YARN重新啟動
任務失敗后,MRAppMaster重新申請資源
環境搭建
mapred-site.xml
mapreduce.framework.nameyarnyarn-site.xml
yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.resourcemanager.ha.enabledtrueyarn.resourcemanager.cluster-idcluster1yarn.resourcemanager.ha.rm-idsrm1,rm2yarn.resourcemanager.hostname.rm1node03yarn.resourcemanager.hostname.rm2node04yarn.resourcemanager.zk-addressnode02:2181,node03:2181,node04:2181啟動:
node1:啟動所有nodemanager
start-yarn.shnode3,node4:啟動resourcemanager
yarn-daemon.sh start resourcemanager樣例:
執行jar
cd /usr/hadoop-2.5.1/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.5.1.jar wordcount /wordcount/input /wordcount/output監控頁:
node04:8088
總結
以上是生活随笔為你收集整理的启动hadoop没有resourcemanager_5.hadoop-MR YARN架构理论与集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs2019功能介绍_MFC界面库BCG
- 下一篇: git统计每个人的代码行数_项目出了bu