MapReduce經典答題

      網友投稿 833 2022-05-28

      在上一個階段——HDFS,小菌出過一期HDFS的經典面試題,不知道小伙伴們掌握的怎么樣吖(詳情見–>《HDFS經典面試題》),本期同樣在MapReduce快要結束階段為大家帶來MapReduce的經典面試題!

      MapReduce核心思想

      map負責切分,reduce負責合并(先分后合,分而治之)

      1

      如何理解偏移量

      每行的行首到首行行首的距離

      1

      Suffle包含哪些步驟

      分區(partition)------->排序(sort)------->數據優化計算(combine)------->分組(group)

      1

      MR從讀取數據開始到將最終結果寫入HDFS經過哪些步驟

      第一步:inputformat 數據讀取 ↓ ↓ 第二步:split 將獲取的數據進行邏輯切分 ↓ ↓ 第三步: recordReader(將數據以\n切分,進行再次切分,并輸出key(行首字母的偏移量),value(一行的數據)) ↓ ↓ 第四步: Map接收key(行首字母偏移量),value(一行的數據),根據業務需求編寫代碼,輸出(key,value 的list) ↓ ↓ 輸出給Shuffle(partition) ↓ ↓ shffle(核心機制: 數據分區,排序,分組,ComBine,合并等過程)輸出key value的list ↓ ↓ 第五步:partition :按照一定的規則對key,value 的 list 進行分區 輸出給Shuffle(sort) ↓ ↓ 第六步:Sort :對每個分區內的數據進行排序。 輸出給Shuffle(combiner) ↓ ↓ 第七步: Combiner: 在Map端進行局部聚合(匯總) 目的是為了減少網絡帶寬的開銷 輸出給Shuffle(group) ↓ ↓ 第八步: Group: 將相同key的key提取出來作為唯一的key,將相同key 對應的value 提取出來組裝成一個value 的List 輸出給Shuffle(reduce) ↓ ↓ 第九步: Reduce:根據業務需求對傳入的數據進行匯總計算 輸出給Shuffle(outputFormat) ↓ ↓ 第十步: outputFormat:將最終的結果的寫入到HDFS

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      如何設置ReduceTask的數量

      job.setNumReduceTasks(個數);

      1

      Combiner的作用

      Map結束后,在Map端進行局部聚和。作用:較少網絡傳出次數,降低了網絡帶寬開銷。

      MapReduce經典簡答題

      1

      combiner運行在MapReduce的哪一端?

      Map端。在Map端中shuffle中。

      1

      Maptask的數量是可以人為設置的嗎?

      不可以

      1

      2

      Shuffle階段的Partition分區算法是什么

      對map輸出的key 取哈希值,用這個哈希值與reducetask的個數值取余。 余幾,就將這個key,value放在對應的分區編號里(分區有多個編號)。

      1

      2

      Split邏輯切分數據,節分大小是多大?

      128M

      1

      內存角度介紹Map的輸出到Reduce的輸入的過程。

      `Map的輸出到內存` Map將數據傳入環形緩沖區(默認100MB 可修改),環形緩沖區中的數據到達一定的閾值時(默認0.8 可修改)進行溢寫生成好多臨 時文件,多個臨時文件到達一定數量進行merge合并成一個大文件。 `Reduce數據讀取` reduce會主動去發起拷貝線程到maptask獲取屬于自己的數據,數據會進入ReduceTask中的環形緩沖區,當緩沖區中的數據量到達 一定閾值進行溢寫,多個臨時文件merge合并成一個大文件,最后輸入到Reduce。

      1

      2

      3

      4

      5

      6

      7

      最優的Map效率是什么?

      Map端的最高效率是:盡量減少環形緩沖區flush的次數(減少磁盤IO 的使用次數) 增加環形緩沖區內存 將閾值上調 壓縮map輸出的數據大小(消耗cpu)

      1

      2

      3

      4

      最優的reduce是什么?

      Reduce端的最高效率是:盡量減少環形緩沖區flush的次數 盡量將數據放在內存上進行計算

      1

      2

      在MR階段,有哪些可以優化的點?

      1、加大環形緩沖區的內存 2、增大緩沖區閾值的大小 (考慮剩余的空間是不是夠系統使用) 3、對輸出的進行壓縮(壓縮-解壓的過程會消耗CPU)

      1

      2

      3

      集群優化的核心思路是什么?

      在網絡帶寬、磁盤IO是瓶頸的前提下 能不使用IO 網絡就不使用,在必須使用的前提下,能少用就少用。 所有的,只要能夠減少網絡帶寬的開銷,只要能夠減少磁盤io的使用的次數的配置項,都是集群調優的可選項。 (可選項包括: 軟件層面【系統軟件和集群軟件】,硬件層面,網絡層面)

      1

      2

      3

      4

      5

      本期MapReduce經典面試題的分享就到這里了,受益的小伙伴們不要忘了關注小菌。后續小菌將推出Hadoop之Hive系列!敬請期待(?>︶<)?

      Hadoop MapReduce

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:還在為存儲方案猶豫不決?選擇OBS干啥啥都行
      下一篇:oracle數據庫巡檢內容
      相關文章
      久久久无码精品亚洲日韩按摩| 亚洲成AV人片在WWW| 亚洲av日韩av永久无码电影| 亚洲一区二区影院| 亚洲国产专区一区| 日产国产精品亚洲系列| 国产午夜亚洲精品不卡电影| 亚洲AV无码片一区二区三区| 亚洲欧洲无卡二区视頻| 亚洲欧洲视频在线观看| 亚洲剧情在线观看| 亚洲欧洲综合在线| 亚洲第一精品电影网| 国产A在亚洲线播放| 午夜亚洲AV日韩AV无码大全| 久久精品国产精品亚洲蜜月| 亚洲区小说区激情区图片区| 亚洲性日韩精品国产一区二区| 亚洲av永久中文无码精品| 在线观看亚洲免费| 亚洲精品456播放| 久久精品夜色噜噜亚洲A∨| 亚洲综合熟女久久久30p| 亚洲AV无码成人精品区在线观看| 亚洲AV无码一区二区二三区软件 | 亚洲日韩在线中文字幕第一页| 激情小说亚洲色图| 亚洲毛片av日韩av无码| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲国产综合精品中文字幕| 亚洲精品和日本精品| 中文字幕亚洲不卡在线亚瑟| 久久精品亚洲中文字幕无码网站 | 亚洲午夜无码久久久久小说 | 亚洲国产综合专区电影在线| 亚洲第一二三四区| 中文无码亚洲精品字幕| 日本亚洲高清乱码中文在线观看 | 亚洲国产精品张柏芝在线观看| 亚洲天堂免费在线| 国产成人精品日本亚洲语音 |