Hadoop之MapReduce面试知识复习
Hadoop之MapReduce面試知識復習
目錄
1. 談談Hadoop序列化和反序列化及自定義bean對象實現序列化?
已詳細總結過,請參考:Hadoop之Hadoop序列化
2. FileInputFormat切片機制
已詳細總結過,請參考:Hadoop之InputFormat數據輸入詳解
3. 在一個運行的Hadoop 任務中,什么是InputSplit?
已詳細總結過,可以參考:Hadoop之InputFormat數據輸入詳解
找到你數據存儲的目錄。
開始遍歷處理(規劃切片)目錄下的每一個文件
遍歷第一個文件ss.txt
獲取文件大小fs.sizeOf(ss.txt)
計算切片大小 computeSliteSize(Math.max(minSize,Math.min(maxSize,blocksize)))=blocksize=128M
默認情況下,切片大小=blocksize
開始切,形成第1個切片:ss.txt—0:128M 第2個切片ss.txt—128:256M 第3個切片ss.txt—256M:300M(每次切片時,都要判斷切完剩下的部分是否大于塊的1.1倍,不大于1.1倍就劃分一塊切片)
將切片信息寫到一個切片規劃文件中
整個切片的核心過程在getSplit()方法中完成
數據切片只是在邏輯上對輸入數據進行分片,并不會在磁盤上將其切分成分片進行存儲。InputSplit只記錄了分片的元數據信息,比如起始位置、長度以及所在的節點列表等
注意:block是HDFS物理上存儲的數據,切片是對數據邏輯上的劃分
提交切片規劃文件到yarn上,yarn上的MrAppMaster就可以根據切片規劃文件計算開啟maptask個數。
4. 自定義InputFormat流程
5. Maptask的個數由什么決定?
6. MapTask工作機制
已詳細總結過,可以參考:Hadoop之MapTask工作機制
7. ReduceTask工作機制
已詳細總結過,可以參考:ReduceTask工作機制
8. 請描述mapReduce有幾種排序及排序發生的階段
排序的分類:
部分排序:
MapReduce根據輸入記錄的鍵對數據集排序。保證輸出的每個文件內部排序。
全排序:
如何用Hadoop產生一個全局排序的文件?最簡單的方法是使用一個分區。但該方法在處理大型文件時效率極低,因為一臺機器必須處理所有輸出文件,從而完全喪失了MapReduce所提供的并行架構。
替代方案:首先創建一系列排好序的文件;其次,串聯這些文件;最后,生成一個全局排序的文件。主要思路是使用一個分區來描述輸出的全局排序。例如:可以為待分析文件創建3個分區,在第一分區中,記錄的單詞首字母a-g,第二分區記錄單詞首字母h-n, 第三分區記錄單詞首字母o-z。
輔助排序:(GroupingComparator分組)
Mapreduce框架在記錄到達reducer之前按鍵對記錄排序,但鍵所對應的值并沒有被排序。甚至在不同的執行輪次中,這些值的排序也不固定,因為它們來自不同的map任務且這些map任務在不同輪次中完成時間各不相同。一般來說,大多數MapReduce程序會避免讓reduce函數依賴于值的排序。但是,有時也需要通過特定的方法對鍵進行排序和分組等以實現對值的排序。
二次排序:
在自定義排序過程中,如果compareTo中的判斷條件為兩個即為二次排序。
自定義排序WritableComparable
bean對象實現WritableComparable接口重寫compareTo方法,就可以實現排序
排序發生的階段:
9. 請描述mapReduce中combiner的作用是什么,一般使用情景,哪些情況不需要,及和reduce的區別?
10. Mapreduce的工作原理,請舉例子說明mapreduce是怎么運行的?
已詳細總結過,可以參考:Hadoop之MapReduce工作流程
11. 如果沒有定義partitioner,那數據在被送達reducer前是如何被分區的?
如果沒有自定義的 partitioning,則默認的 partition 算法,即根據每一條數據的 key的 hashcode 值模運算(%)reduce 的數量,得到的數字就是"分區號"。
12. MapReduce 怎么實現 TopN?
可以自定義groupingcomparator,對結果進行最大值排序,然后再reduce輸出時,控制只輸出前n個數。就達到了topn輸出的目的。
13. 如何使用mapReduce實現兩個表的join?
14. 有可能使 Hadoop 任務輸出到多個目錄中么?如果可以,怎么做?
可以通過自定義outputformat來實現。
15. 什么樣的計算不能用mr來提速,舉5個例子
總結
以上是生活随笔為你收集整理的Hadoop之MapReduce面试知识复习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop之HDFS面试知识复习
- 下一篇: Hadoop之Yarn面试知识复习