什么是計(jì)算、分布式計(jì)算?
·計(jì)算:對(duì)數(shù)據(jù)進(jìn)行處理,使用統(tǒng)計(jì)分析等手段得到需要的結(jié)果
·分布式計(jì)算:多臺(tái)服務(wù)器協(xié)同工作,共同完成一個(gè)計(jì)算任務(wù)
分布式計(jì)算常見的2種工作模式
- 分散->匯總(MapReduce就是這種模式)
- 中心調(diào)度->步驟執(zhí)行(大數(shù)據(jù)體系的Spark、Flink等是這種模式)
hadoop分布式計(jì)算框架-MapReduce
MapReduce是“分散->匯總”模式的分布式計(jì)算框架,可供開發(fā)人員開發(fā)相關(guān)程序進(jìn)行分布式數(shù)據(jù)計(jì)算。
MapReduce提供了2個(gè)編程接口:
·Map
·Reduce
其中
·Map功能接口提供了“分散”的功能,由服務(wù)器分布式對(duì)數(shù)據(jù)進(jìn)行處理
·Reduce.功能接口提供了“匯總(聚合)”的功能,將分布式的處理結(jié)果匯總統(tǒng)計(jì)
用戶如需使用MapReduce框架完成自定義需求的程序開發(fā)
只需要使用Java、Python等編程語言,實(shí)現(xiàn)Map Reduce.功能接口即可。
目前map reduce框架代碼開發(fā)已經(jīng)逐漸淘汰,但由于hive分布式sql框架底層是map reduce實(shí)現(xiàn)的,所以map reduce仍活躍在一線。
MapReduce是基于YARN運(yùn)行的,99%場(chǎng)景下map reduce都是集成在yarn集群中運(yùn)行的
YARN的資源調(diào)度
YARN管控整個(gè)集群的資源進(jìn)行調(diào)度,那么應(yīng)用程序在運(yùn)行時(shí),就是在YARN的監(jiān)管(管理)下去運(yùn)行的。
這就像:全部資源都是公司(YARN)的,由公司分配給個(gè)人(具體的程序)去使用。
比如,一個(gè)具體的MapReduce程序。
我們知道,MapReduce程序會(huì)將任務(wù)分解為若干個(gè)Map任務(wù)和Reduce任務(wù)。
假設(shè),有一個(gè)MapReduce程序,分解了3個(gè)Map任務(wù),和1個(gè)Reduce任務(wù),每個(gè)map任務(wù)需要2GB運(yùn)行內(nèi)存,每個(gè)reduce任務(wù)需要4GB運(yùn)行內(nèi)存,那么如何在YARN的監(jiān)管(管理)下運(yùn)行呢?
map程序和reduce程序會(huì)告訴yarn所需的資源情況,向yarn申請(qǐng)資源,yarn則會(huì)根據(jù)資源情況,分配具體的任務(wù)運(yùn)行
YARN的核心架構(gòu)
YARN,主從架構(gòu),有2個(gè)角色
·主(Master)角色:ResourceManager
整個(gè)集群的資源調(diào)度者,負(fù)責(zé)協(xié)調(diào)調(diào)度各個(gè)程序所需的資源。
·從(Slave)角色:NodeManager
單個(gè)服務(wù)器的資源調(diào)度者,負(fù)責(zé)調(diào)度單個(gè)服務(wù)器上的資源提供給應(yīng)用程序使用
如上圖,某個(gè)程序告知yarn我需要的資源情況,yarn的resource manager查看資源情況,并通知到node manager,node manager會(huì)通過容器技術(shù),創(chuàng)建容器來占用對(duì)應(yīng)的資源,然后再分配具體的程序來運(yùn)行。yarn能搶占資源及精準(zhǔn)分配資源是通過容器技術(shù)實(shí)現(xiàn)的。
YARN輔助角色
YARN的架構(gòu)中除了核心角色,即:
·ResourceManager:集群資源總管家
·NodeManager:單機(jī)資源管家
還可以搭配2個(gè)輔助角色使得YARN集群運(yùn)行更加穩(wěn)定
。代理服務(wù)器(ProxyServer):Web Application Proxy Web應(yīng)用程序代理
。歷史服務(wù)器(obHistoryServer):應(yīng)用程序歷史信息記錄服務(wù)
Web應(yīng)用代理(Web Application Proxy)
代理服務(wù)器,即W2b應(yīng)用代理是YARN的一部分。默認(rèn)情況下,它將作為資源管理器(RM)的一部分運(yùn)行,但是可以配置為在獨(dú)立模式下運(yùn)行。使用代理的原
因是為了減少通過YARN進(jìn)行基于網(wǎng)絡(luò)的攻擊的可能性。
這是因?yàn)?,YARN在運(yùn)行時(shí)會(huì)提供一個(gè)WEB UI站點(diǎn)(同HDFS的WEB UIS站點(diǎn)一樣)可供用戶在瀏覽器內(nèi)查看YARN的運(yùn)行信息
對(duì)外提供WEB站點(diǎn)會(huì)有安全性問題,而代理服務(wù)器的功能就是最大限度保障對(duì)WEB UIE的訪問是安全的。比如:
- 警告用戶正在訪問一個(gè)不受信任的站點(diǎn)
- 剝離用戶訪問的Cookie等
代理服務(wù)器默認(rèn)集成在了ResourceManager中
也可以將其分離出來單獨(dú)啟動(dòng),如果要分離代理服務(wù)器
- 在yarn-site.xml中配置yarn.web-proxy.address參數(shù)即可(部署環(huán)節(jié)會(huì)使用到)
2.并通過命令啟動(dòng)它即可$HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver
JobHistoryServer歷史服務(wù)器
歷史服務(wù)器的功能很簡(jiǎn)單:記錄歷史運(yùn)行的程序的信息以及產(chǎn)生的日志并提供WEBU站點(diǎn)供用戶使用瀏覽器查看。它可以收集各個(gè)服務(wù)器的日志數(shù)據(jù)并統(tǒng)一匯總到hdfs上,方便用戶查看
開啟歷史服務(wù)器需要配置:
-
開啟日志聚合,允許從容器中抓取日志到hdfs中集中存儲(chǔ)
文章來源:http://www.zghlxwxcb.cn/news/detail-847726.html
-
配置歷史服務(wù)器端口和主機(jī)
文章來源地址http://www.zghlxwxcb.cn/news/detail-847726.html
到了這里,關(guān)于hadoop分布式計(jì)算組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!