應聘-系統研發工程師

Hadoop阿里巴巴面試題目
前段時間接到阿里巴巴面試雲計算,拿出來給我們共享下
1、hadoop運轉的原理?
2、mapreduce的原理?
3、HDFS存儲的機制?
4、舉一個簡略的比方闡明mapreduce是怎麼來運轉的 ?
5、面試的人給你出一些疑問,讓你用mapreduce來完成?
比方:如今有10個文件夾,每個文件夾都有1000000個url.如今讓你找出top1000000url。
6、hadoop中Combiner的效果?

(1) 解釋“hadoop”和“hadoop生態系統”兩個概念
(2) 說明Hadoop 2.0的基本構成
(3) 相比於HDFS1.0, HDFS 2.0最主要的改進在哪幾方面?
(4) 試使用“步驟1,步驟2,步驟3…..”說明YARN中運行應用程序的基本流程
(5) “MapReduce 2.0”與“YARN”是否等同,嘗試解釋說明
(6) MapReduce 2.0中,MRAppMaster主要作用是什麼,MRAppMaster如何實現任務容錯的?

HADOOP核心組件
1.HDFS -C盤,D盤
2.YARN集羣管理和調度,相當於WINDOWS,可以跑程序,管理進程
3.MAPREDUCE定義數據處理的基本操作,類似於visual studio開始開發自己軟件

現在服務器這麼多,日誌分散在每個服務器上面,如果我好奇A今天又約了幾個妹子,我得把幾十臺服務器的日誌全部掃一遍才能知道,反正我只關心A到底約了幾個不同的妹子,我用相同的程序掃描每臺機器的日誌,在裏面找與A相關的聊天記錄,把A發送的信息的收件人全部提出來,最後拿到一個地方彙總過濾一下不就好了嘛。每臺服務器上面的日誌文件太大了(大家小黃圖發來發去)一次處理不完怎麼辦?反正我只關心A的相關記錄,把大文件切割成小文件就好了嘛。這樣的日誌處理是把程序分佈在每臺電腦上運行,每臺電腦上的處理程序都做相同的工作——找與A相關的聊天信息,然後把在所有服務器日誌裏面找到的信息集中發到一個服務器上,過濾彙總一下,就能知道A到底約了幾炮啦。用來管理和執行這些分佈式程序的軟件系統,需要合理調度其控制的所有計算資源(比如其中一臺電腦掃描完沒事幹了,不能讓它閒下來,可以把別的電腦還沒處理完的小文件發給它,讓閒置的電腦來處理),最後得出結果。這樣的分佈式資源調度+分佈式運算 的軟件,就是HADOOP的另一個重要板塊map-reduce,用來處理海量的文件,一開始也是GOOGLE搞出來的。

作者:麻倉葉
鏈接:https://www.zhihu.com/question/32326748/answer/57341870
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

HDFS
Namenode 管理者文件系統的Namespace命名空間。它維護着文件系統樹(filesystem tree)以及文件樹中所有的文件和文件夾的元數據(metadata)
[感謝石頭的原創](http://developer.51cto.com/art/201301/376472.htm

Datanode是文件系統的工作節點,他們根據客戶端或者是namenode的調度存儲和檢索數據,並且定期向namenode發送他們所存儲的塊(block)的列表。

Namenode容錯機制:
1. 第一種方式是將持久化存儲在本地硬盤的文件系統元數據備份.
2. 第二種方式是運行一個輔助的Namenode(Secondary Namenode)

Mapreduce
任務過程被分爲兩個階段:map階段和reduce階段,每個階段都是用鍵值對(key/value)作爲輸入(input)和輸出(output)。而程序員要做的就是定義好這兩個階段的函數:map函數和reduce函數。

Combiner
http://www.tuicool.com/articles/qAzUjav

YARN
http://blog.csdn.net/aaronhadoop/article/details/50980920
提交-jar處理機制
spark採用file cache而不是application cache的原因,是因爲spark在每個NM上啓動的是一個executor,每個task作爲executor裏的一個線程在運行。而只需要在executor啓動時,在這個節點上用file cache機制分發一次jar包,然後在每個task執行時,能共享到通過file cache傳過來的jar包。所以採用file cache機制的原因,是要在task之間共享jar包。
http://blog.csdn.net/amber_amber/article/details/42081045
任務調度
http://www.zezhi.net/409.html
http://blog.csdn.net/javastart/article/details/50674043
http://spark.apache.org/docs/latest/job-scheduling.html#fair-scheduler-pools

YARN vs Mesos
Mesos 可以由master來決定接受還是reject這個job
http://blog.csdn.net/xinghun_4/article/details/47907161

Hadoop1 vs Hadoop2
1. MRv1是一個獨立的離線計算框架,而MRv2則是運行於YARN之上的MRv1
2. Hadoop 2.0中對HDFS進行了改進,使NameNode可以橫向擴展成多個,其中,每個NameNode分管一部分目錄,這不僅增強了HDFS的擴展性,也使HDFS具備了隔離性

Spark vs Hadoop
感謝用心閣的原創
Mapreduce是低層次抽象,類似於與非門,那麼Spark中的RDD就相當於邏輯當中的編碼器,包裝了Mapreduce,有多種操作:flatmap, groupby, filter, union,join
Mapreduce只有兩個階段:Map和Reduce, 中間結果存入HDFS文件系統中,也就是磁盤中
而Spark 分成stages多個階段,中間結果存在內存中

Ambari:
http://www.cnblogs.com/scotoma/archive/2013/05/18/3085248.html

可視化
http://www.csdn.net/article/2015-07-08/2825162

發佈了18 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章