面試必備!Hadoop常見面試題匯總

2021-02-18 大數據那些事

面試題二:請簡述Hadoop常用的配置文件及Hadoop集群搭建過程

1、配置文件:

Hadoop2.x的配置文件有core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

Hadoop3.x的配置文件有core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers

2、簡單的集群搭建過程:

JDK安裝

配置SSH免密登錄

配置hadoop核心文件

格式化namenode

面試題四:HDFS對於小文件的處理有哪些需要注意的地方?

(1)存儲層面:

1個文件塊,佔用namenode多大內存150位元組

1億個小文件*150位元組

1個文件塊 * 150位元組

128G能存儲多少文件塊?   128 * 1024*1024*1024byte/150位元組 = 9億文件塊

(2)計算層面:

每個小文件都會起到一個MapTask,佔用了大量計算資源

(1)採用har歸檔方式,將小文件歸檔

(2)採用CombineTextInputFormat

(3)有小文件場景開啟JVM重用;如果沒有小文件,不要開啟JVM重用,因為會一直佔用使用到的task卡槽,直到任務完成才釋放。

JVM重用可以使得JVM實例在同一個job中重新使用N次,N的值可以在Hadoop的mapred-site.xml文件中進行配置。通常在10-20之間

<property>   <name>mapreduce.job.jvm.numtasks</name>    <value>10</value>    <description>How many tasks to runper jvm,if set to -1 ,there is  nolimit</description></property>   

面試題五:描述Shuffle的過程,並說明如何進行優化。

優化從四個方面考慮,分別是Map階段、Reduce階段、IO傳輸和整體考慮。

1、Map階段

2、Reduce階段

合理設置Map和Reduce數:兩個都不能設置太少,也不能設置太多。太少,會導致Task等待,延長處理時間;太多,會導致 Map、Reduce任務間競爭資源,造成處理超時等錯誤。

設置Map、Reduce共存:調整slowstart.completedmaps參數,使Map運行到一定程度後,Reduce也開始運行,減少Reduce的等待時間。

規避使用Reduce,因為Reduce在用於連接數據集的時候將會產生大量的網絡消耗。

增加每個Reduce去Map中拿數據的並行數

集群性能可以的前提下,增大Reduce端存儲數據內存的大小。

3、IO傳輸

採用數據壓縮的方式,減少網絡IO的的時間。安裝Snappy和LZOP壓縮編碼器。

壓縮:

map輸入端主要考慮數據量大小和切片,支持切片的有Bzip2、LZO。注意:LZO要想支持切片必須創建索引;

map輸出端主要考慮速度,速度快的snappy、LZO;

reduce輸出端主要看具體需求,例如作為下一個mr輸入需要考慮切片,永久保存考慮壓縮率比較大的gzip。

4、整體

NodeManager默認內存8G,需要根據伺服器實際配置靈活調整,例如128G內存,配置為100G內存左右,yarn.nodemanager.resource.memory-mb。

單任務默認內存8G,需要根據該任務的數據量靈活調整,例如128m數據,配置1G內存,yarn.scheduler.maximum-allocation-mb。

mapreduce.map.memory.mb:控制分配給MapTask內存上限,如果超過會kill掉進程(報:Container is running beyond physical memorylimits. Current usage:565MB of512MB physical memory used;Killing Container)。默認內存大小為1G,如果數據量是128m,正常不需要調整內存;如果數據量大於128m,可以增加MapTask內存,最大可以增加到4-5g。

mapreduce.reduce.memory.mb:控制分配給ReduceTask內存上限。默認內存大小為1G,如果數據量是128m,正常不需要調整內存;如果數據量大於128m,可以增加ReduceTask內存大小為4-5g。

mapreduce.map.java.opts:控制MapTask堆內存大小。(如果內存不夠,報:java.lang.OutOfMemoryError)

mapreduce.reduce.java.opts:控制ReduceTask堆內存大小。(如果內存不夠,報:java.lang.OutOfMemoryError)

可以增加MapTask的CPU核數,增加ReduceTask的CPU核數

增加每個Container的CPU核數和內存大小

在hdfs-site.xml文件中配置多目錄(多磁碟)

NameNode有一個工作線程池,用來處理不同DataNode的並發心跳以及客戶端並發的元數據操作。,比如集群規模為8臺時,此參數設置為41。可通過簡單的python代碼計算該值,代碼如下。

[atguigu@hadoop102 ~]$ pythonPython 2.7.5 (default,Apr 11 2018, 07:36:10)[GCC 4.8.5 20150623(Red Hat 4.8.5-28)] on linux2Type "help","copyright", "credits" or "license" for moreinformation.>>> import math>>> printint(20*math.log(8))41>>> quit()

1、Hadoop調度器重要分為三類:

FIFO 、Capacity Scheduler(容量調度器)和Fair Sceduler(公平調度器)。

Apache默認的資源調度器是容量調度器;

CDH默認的資源調度器是公平調度器。

2、主要區別:

FIFO調度器:支持單隊列、先進先出  生產環境不會用。

容量調度器:支持多隊列,保證先進入的任務優先執行。

公平調度器:支持多隊列,保證每個任務公平享有隊列資源。資源不夠時可以按照缺額分配。

3、在生產環境下怎麼選擇?

大廠:如果對並發度要求比較高,選擇公平,要求伺服器性能必須OK;

中小公司,集群伺服器資源不太充裕選擇容量。

4、在生產環境怎麼創建隊列?

調度器默認就1個default隊列,不能滿足生產要求。

按照框架:hive /spark/ flink 每個框架的任務放入指定的隊列(企業用的不是特別多)

按照業務模塊:登錄註冊、購物車、下單、業務部門1、業務部門2

5、 創建多隊列的好處?

搭建完Hadoop集群後需要對HDFS讀寫性能和MR計算能力測試。測試jar包在hadoop的share文件夾下。

集群總吞吐量= 帶寬*集群節點個數/副本數

例如:100m/s * 10臺/ 3= 333m/s

注意:如果測試數據在本地,那副本數-1。因為這個副本不佔集群吞吐量。如果數據在集群外,向該集群上傳,需要佔用帶寬。本公式就不用減1。

1、如果MR造成系統宕機。此時要控制Yarn同時運行的任務數,和每個任務申請的最大內存。調整參數:yarn.scheduler.maximum-allocation-mb(單個任務可申請的最多物理內存量,默認是8192MB)

2、如果寫入文件過快造成NameNode宕機。那麼調高Kafka的存儲大小,控制從Kafka到HDFS的寫入速度。例如,可以調整Flume每批次拉取數據量的大小參數batchsize。

1、提前在map進行combine,減少傳輸的數據量

在Mapper加上combiner相當於提前進行reduce,即把一個Mapper中的相同key進行了聚合,減少shuffle過程中傳輸的數據量,以及Reducer端的計算量。

如果導致數據傾斜的key大量分布在不同的mapper的時候,這種方法就不是很有效了。

2、導致數據傾斜的key 大量分布在不同的mapper

(1)局部聚合加全局聚合。

第一次在map階段對那些導致了數據傾斜的key 加上1到n的隨機前綴,這樣本來相同的key 也會被分到多個Reducer中進行局部聚合,數量就會大大降低。

第二次mapreduce,去掉key的隨機前綴,進行全局聚合。

思想:二次mr,第一次將key隨機散列到不同reducer進行處理達到負載均衡目的。第二次再根據去掉key的隨機前綴,按原key進行reduce處理。

這個方法進行兩次mapreduce,性能稍差。

(2)增加Reducer,提升並行度
JobConf.setNumReduceTasks(int)

(3)實現自定義分區

根據數據分布情況,自定義散列函數,將key均勻分配到不同Reducer。

關注公眾號,回復關鍵字「Hadoop」,還能獲取全部資料,不要錯過!

微信號|bigdata_story

B站|大數據那些事

想獲取更多更全資料

掃碼加好友入群

歡迎各位大佬加入開源共享

共同面對大數據領域疑難問題

來稿請投郵箱:miaochuanhai@126.com

相關焦點

  • Hadoop大數據面試題全版本
    以下資料來源於網際網路,很多都是面試者們去面試的時候遇到的問題,我對其中有的問題做了稍許的修改了回答了部分空白的問題,其中裡面有些考題出的的確不是很好,但是也不乏有很好的題目,這些都是基於真實的面試來的,希望對即將去面試或向繼續學習hadoop,大數據等的朋友有幫助!
  • Hadoop高頻面試題(建議收藏)
    調度分布式計算工具場景大規模數據集上的批處理迭代計算,交互式計算,流計算價格對機器要求低,便宜對內存有要求,相對較貴編程範式MapReduce,API 較為底層,算法適應性差RDD組成DAG有向無環圖,API較為頂層,方便使用數據存儲結構MapReduce中間計算結果存在HDFS磁碟上,延遲大RDD中間運算結果存在內存中,延遲小運行方式Task以進程方式維護,任務啟動慢Task以線程方式維護,任務啟動快三、Hadoop常見的版本有哪些
  • 頂級Hadoop管理員面試問題與回答
    這是一個面試者為Hadoop管理員面試所必要的,精通大型數據管理的概念。為了證明自己是一位合格的Hadoop管理員的候選人,你需要具備對於處理Hadoop項目的知識和管理能力,展示特定領域的興趣和專業知識,具有多任務處理能力和領導能力。如果你已經申請了Hadoop的管理員工作,那麼它值得你花一些時間去回顧這些列在下面的面試問題。
  • 2020考研:複試網絡面試常見問題匯總
    2020考研:複試網絡面試常見問題匯總 今年受到疫情的影響考研複試的時間都有所調整,
  • Java 最常見的 200+ 面試題:面試必備
    聊回面試題這件事,這份面試清單原本是我們公司內部使用的,可到後來有很多朋友在微信上聯繫到我,讓我幫他們找一些面試方面的資料,而且這些關係也不太好拒絕,一呢,是因為這些找我,要面試題的人,不是我的好朋友的弟弟妹妹,就是我的弟弟妹妹們;二呢,我也不能馬馬虎虎的對付,受人之事忠人之命,我也不能辜負這份信任。
  • 500道Java 必備面試題答案(過後即刪)
    其實,很多面試者在搜集面試資料的時候都踩過一些「坑」,你是不是也遇到過:免費搜索的面試題,內容不全面,這就算了,有時候答案都不準確;很多培訓機構提供的面試寶典內容雖然不少,但深度不夠,且面試題過於老舊脫離了企業實際需要;還有很多付費的面試題存在濫竽充數,提供了很多沒有價值的面試題,錢花了,乾貨沒學到;
  • 2020軍隊文職面試備考技巧:結構化面試的常見流程
    【導讀】華圖寧夏軍隊文職考試網同步華圖教育發布:2020軍隊文職面試備考技巧:結構化面試的常見流程,詳細信息請閱讀下文!如有疑問請加【寧夏軍隊文職考試招考匯總】 ,更多資訊請關注寧夏軍隊文職微信公眾號(nxhtjr),寧夏軍隊文職培訓諮詢電話:0951-6028571 /6027571。寧夏軍隊文職備考QQ群:585178032。
  • 2017大數據面試題及答案
    2017年有不少大數據學員學成準備參加工作,在參加工作前最重要的一輪就是大數據的面試,小編收集了一些2017大數據面試題及答案
  • 小學語文教師資格證面試答辯練習題匯總
    為了幫助廣大考生順利通過面試,早日拿證,中公教師網特整理了 教師資格證面試答辯練習題供考生考前模擬練習,希望能對考生有所幫助!以上是小學語文教師資格證面試答辯練習題,希望對您有所幫助!相關推薦:教師資格證面試備考系列(禮儀、著裝、語言、肢體等)教師資格證面試教案模板|教學設計模板各學科教師資格證面試歷年試題及答案解析匯總(結構化+試講
  • Hadoop面試題答案出爐!!你得了多少分?
    答案Da)SecondaryNameNodeb)DataNodec)TaskTrackerd)Jobtracker此題分析:hadoop的集群是基於master/slave模式,namenode和jobtracker屬於master,datanode和tasktracker屬於slave,master只有一個,而slave有多個SecondaryNameNode
  • 【別笑】手撕吊打面試官系列面試題
    必備面試題js基礎1.用js列印一個乘法表這一題面試官考察的是你關於js的列印相關基礎api的熟悉程度,以及基本的數學常識,送分題console.log(`1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=16
  • 2021北京公務員面試上岸必備
    為了廣大考生可以更加充分的應對面試,華圖教育準備了2021年北京公務員考試面試大禮包——上岸•面霸計劃,值得你我關注。希望對廣大考生的考前有所幫助!   江西人事考試網同步北京公務員考試網招聘信息: 2021北京公務員面試上岸必備,報名時間:,請考生多加關注。
  • 常見結構化面試經典100題及答案分享
    【導讀】華圖寧夏教師招聘考試網同步華圖教育發布:常見結構化面試經典100題及答案分享,詳細信息請閱讀下文!如有疑問請加【2019寧夏教師招聘考試交流群匯總】 ,更多資訊請關注寧夏教師微信公眾號(ningxiajsht),寧夏教師招聘考試培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220
  • 五大行面試通知匯總!原來今年要考這些題
    在此再叮囑各位小夥伴一定一定要提前複習,莫等通知出來臨陣磨槍~對於各大行來說,面試考查形式及重點有所區別,以下小編以農行、建行為例,帶大家了解一下銀行面試真實情況及考查重點,文末還有五大行面試通知匯總哦~▼農業銀行面試再現
  • 常見結構化面試經典100題解析答案查看
    【導讀】華圖寧夏教師招聘考試網同步華圖教育發布:常見結構化面試經典100題解析答案查看,詳細信息請閱讀下文!如有疑問請加【2019寧夏教師招聘考試交流群匯總】 ,更多資訊請關注寧夏教師微信公眾號(ningxiajsht),寧夏教師招聘考試培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220
  • 免費送大廠必備面試題,拒絕套路
    但無論是想要跳槽或晉升讓薪資翻倍,還是會遇到各種各樣的面試。最近Debug整理了一套「2020年程式設計師面試必備題」,現免費分享給大家。內容共有30章,從Java基礎到框架JVM,附帶答案……讓你去面試時就十拿九穩!
  • 常見結構化面試經典100題解析查看
    【導讀】華圖寧夏教師招聘考試網同步華圖教育發布:常見結構化面試經典100題解析查看,詳細信息請閱讀下文!如有疑問請加【2019寧夏教師招聘考試交流群匯總】 ,更多資訊請關注寧夏教師微信公眾號(ningxiajsht),寧夏教師招聘考試培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220
  • 2020Web前端開發常見面試題匯總-開課吧
    ,可以幫助自己順利通過面試哦。以下是小編為大家整理的web前端面試題及答案,供各位參考。Web前端面試題:異步請求適合在哪個生命周期調?解析:官實例的異步請求是在mounted命周期中調的,實際上也可以在created命周期中調。
  • 2020Python常見面試題及答案-開課吧
    Python面試題【Python面試題】-iterable(可迭代對象【Python面試題】怎樣聲明多個變量並賦值?addict 是第三方庫,需要先安裝 pip install addict from addict import Dictaddicted = Dict() addicted.a.b.c.d.e = "value"【Python面試題】如何提高python的運行效率?
  • 公務員結構化面試的常見流程
    所謂面試,其實是考官通過與應試者雙方面對面的信息溝通和行為觀察,來測評應試者是否具備與職業相關的能力和個性品質的一種人事測評手段。在各種各樣的面試形式中,結構化面試是較為普遍的一種面試方式,它的測評要素、面試試題、實施程序、評分標準、考官組成等都是事先進行了規範性設計的,簡而言之,結構化面試是一種標準化的面試。那麼,在結構化面試的當天,考生到底會經歷什麼,又需要注意什麼呢?