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