更新時(shí)間:2022-12-29 14:57:16 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1440次
大家的每一次面試都是一個(gè)重要的轉(zhuǎn)機(jī),能不能抓住這個(gè)機(jī)遇,就給看大家對于面試的信息應(yīng)用掌握了多少,掌握當(dāng)下最緊缺的技術(shù)就是進(jìn)入到大廠的關(guān)鍵,hadoop的相關(guān)面試題無論如何都是需要掌握的技術(shù)知識,今天的這套面試題將在未來職場,讓你脫穎而出!
1、什么是Hadoop及其組件
Hadoop是一個(gè)開源分布式計(jì)算平臺架構(gòu),基于apache協(xié)議發(fā)布,由java語言開發(fā)。主要包括
2、Hadoop的守護(hù)進(jìn)程
3.YARN:Yet Another Resource Negotiator,是一種新的Hadoop資源管理器
負(fù)責(zé)資源管理的,整個(gè)系統(tǒng)有且只有一個(gè) RM ,來負(fù)責(zé)資源的調(diào)度。它也包含了兩個(gè)主要的組件:定時(shí)調(diào)用器(Scheduler)以及應(yīng)用管理器(ApplicationManager)。
每當(dāng) Client 提交一個(gè) Application 時(shí)候,就會新建一個(gè) ApplicationMaster 。由這個(gè) ApplicationMaster 去與 ResourceManager 申請容器資源,獲得資源后會將要運(yùn)行的程序發(fā)送到容器上啟動(dòng),然后進(jìn)行分布式計(jì)算。
NodeManager 是 ResourceManager 在每臺機(jī)器的上代理,負(fù)責(zé)容器的管理,并監(jiān)控他們的資源使用情況(cpu,內(nèi)存,磁盤及網(wǎng)絡(luò)等),以及向ResourceManager/Scheduler 提供這些資源使用報(bào)告。
Container是YARN集群中資源的抽象,將NM上的資源進(jìn)行量化,根據(jù)需要組裝成一個(gè)個(gè)Container,然后服務(wù)于已授權(quán)資源的計(jì)算任務(wù)。計(jì)算任務(wù)在完成計(jì)算后,系統(tǒng)會回收資源,以供后續(xù)計(jì)算任務(wù)申請使用。Container包含兩種資源:內(nèi)存和CPU,后續(xù)Hadoop版本可能會增加硬盤、網(wǎng)絡(luò)等資源。
4.HDFS:分布式文件管理系統(tǒng)
5.MapReduce:分布式計(jì)算框架,采用Master/Slave架構(gòu),1個(gè)JobTracker帶多個(gè)TaskTracker
6.一個(gè)MapReduce任務(wù)在提交階段是如何對輸入數(shù)據(jù)進(jìn)行分片劃分的?
通過InputSplit()函數(shù)來處理,設(shè)置分片數(shù)量為Math.max(minSize,Math.min(goalSize, blockSize)),一個(gè)數(shù)據(jù)片分配一個(gè)map任務(wù)。
7.MapReduce里的Combiner是做什么用的?什么情況下需要,和Reduce的區(qū)別是什么?
Combiner主要是在map完成后,reducer之前對數(shù)據(jù)做一次聚合,以減少數(shù)據(jù)傳輸?shù)腎O開銷。
數(shù)據(jù)格式轉(zhuǎn)換
注意:combine的輸入和reduce的完全一致,輸出和map的完全一致
Combiner和Reducer的區(qū)別在于運(yùn)行的位置
Combiner是在每一個(gè)MapTask所在的節(jié)點(diǎn)運(yùn)行;
Reducer是接收全局所有Mapper的輸出結(jié)果;
以上就是“高頻出現(xiàn)的程序員hadoop面試題及答案”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743