產(chǎn)生背景
MapRdeuce1.x 存在問題
master/slave:JobTracker / TashTracker
問題:
JobTracker: 單點,如果掛掉了就會整個崩掉
想擴展的話兽狭,jobTracker是一個瓶頸
僅僅只能夠支持mapreduce作業(yè)佣蓉,
資源利用率 &運維成本
所有的計算框架運行在一個集群中,共享一個集群的資源,做到按需分配
催生了YARN的誕生
YARN概述
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
- Yet Another Resource Negotiator
- 通用的資源管理系統(tǒng)
1. job scheduling
2. monitoring - 為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度
YARN架構(gòu)
Clinet蚯瞧、ResourceManager嘿期、NodeManager 、ApplicationMaster状知、
Master / slave
Clinet: 向RM提交任務(wù)秽五、殺死任務(wù)等
ApplicationMaster:
i 每個應(yīng)用程序?qū)?yīng)一個AM
ii AM 向RM申請資源用于在NM上啟動對應(yīng)的Task
iii 數(shù)據(jù)切分
iv 為每個task向RM申請資源(container),與NodeManager通信
v 任務(wù)的監(jiān)控
NodeManager:多個
i 干活(計算)
ii 向RM發(fā)送心跳信息饥悴、任務(wù)的執(zhí)行情況坦喘、啟動任務(wù)
iii 處理來自AM的命令,
ResourceManager:集群中同一時刻對外提供服務(wù)的只有一個西设,負責(zé)資源相關(guān)
i 處理來自客戶端的請求: 提交 / 殺死
ii 啟動 / 監(jiān)控AM
iii 監(jiān)控NM
container:任務(wù)的運行抽象(memory瓣铣、cpu)
i task是運行在container里面的,可以運行am贷揽、也可以運行map棠笑、reduce 等
啟動yarn
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
提交:
cd /home/hadoop/app/hadoop-2.6.0-cdh5.15.1/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.15.1.jar pi 2 3
提交自己開發(fā)的作業(yè)到Y(jié)ARN上運行的步驟:
1 mvn clean package -DskinTests
2 把編譯出來的jar包以及測試數(shù)據(jù)上傳到服務(wù)器
scp
3 把數(shù)據(jù)上傳到HDFS
hadoop fs -put xxx
4 執(zhí)行作業(yè)
hadoop jar xxx.jar 包名+類名 args...
5 到Y(jié)ARN UI(8088)上去觀察作業(yè)的運行情況
6 到輸出目錄去查看對應(yīng)的輸出情況