MRS 3.0.x獲取Kafka服務指標Java樣例
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端進行局部聚和。作用:較少網絡傳出次數,降低了網絡帶寬開銷。
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小時內刪除侵權內容。