【面經】阿里健康-2017年8月29日,散招實習生

monkeysayhi發表於2017-10-18

一塌糊塗。

終究不是因為電面才一塌糊塗,終究是因為自己太菜。

一面(結果未知)

一面喜歡問理解,講邏輯。跟濤神路子不一樣,濤神路子野,只講邏輯。

理論基礎(全跪)

對分散式的理解

面試官:“我理解你的三個主要技能是Java、併發和分散式,對吧?”
小菜雞:“我覺得只有Java掌握了基本使用,併發和分散式只能說在學習。”
面試官:“好,那你對分散式的理解是什麼?”
。。。

不過仔細想想,這樣問也沒毛病。如果我說熟悉分散式,那才可能是真的提問了。。。我勉強按照大問題分解為小問題,但是實際上還有容錯性等等,非常多的內容。當時學分散式的時候正在實習,這學期得認真學一遍了。

容錯性的幾種方案

只答上來了冗餘備份。

冗餘備份的幾種方案

我答的是:以儲存為例,可按照冗餘的物件可分為 對儲存單位冗餘(如HDFS中對Block冗餘)、對儲存物件冗餘(如直接備份整個檔案)、對儲存介質備份(如磁碟冗餘陣列)、對儲存系統冗餘(如HA)。

面試官期待的是:物理冗餘(多備份)、時間冗餘(超時重發)、軟體冗餘(HA)、資訊冗餘(校驗和)。

原始碼

圍繞HDFS寫檔案的過程講述HDFS中NameNode、SecondaryNameNode、DataNode的作用

最開始面試官提問的很模糊,,不說HDFS,就說分散式系統,,,搞得我只能根據HDFS抽象著回答。其實我覺得這一點是面試官文件問的不好,總之後來面試直接要求我回答兩個問題:

  1. put大檔案的過程(順著我開始說的大問題分解為小問題的思路描述,實在貼心)
  2. 寫檔案過程中,DN掛了怎麼辦

這倆問題之前面試陌陌答過一次了,這次提前宣告瞭原始碼版本,才開始講。依舊被評價講的囉嗦。

Yarn中主要有哪些元件(小跪)

  • 最高層:ResourceManager、NodeManager(丟了AppMaster)
  • ResourceManager上細分:ResourceTracker、ResourceScheduler、安全相關的服務等
  • NodeManager上細分:NodeStatusUpdater、ContaineManager、安全相關的服務等

就是我丟的那個,,,我後來知道面試官只是希望我答RM、NM、AM。

為什麼Yarn能夠支援多種多樣的框架

這得益於Yarn的兩層排程機制,RM只負責資源分配,具體的業務邏輯由AM負責,AM根據業務邏輯向RM申請Contaienr。

專案

講一個你覺得最有挑戰的專案

講的vulture,被啪啪啪的批評講的囉嗦。

總結

第一次經歷這種模式:一面之後,結果未知的等待二面。第一次有準備的經歷電面。聽一面的面試官說,二面你想面談可以來公司,三面是部門老大,在杭州,應該也是電面。我的內心是崩潰的,,,可是我還是要練啊,,拿阿里練手真是奢侈啊T_T。

表現不好的本質原因還是自己太菜。但其實也想明白了一點,我之所以電面比面談表現差,是因為自己表達能力不好,面談還可以通過寫寫畫畫,讓面試官明白自己想表達的意思,但電面幾乎就只能靠嘴皮子了——溝通不暢、吐字不清、邏輯混亂都是大bug。

到今天寫完面經的時候,還沒收到二面通知,估計是掛了。這個面試官,看不上我加我微信幹嘛呢T_T

給自己的建議:

  • 耐心學習分散式系統的理論知識,不管為了面試還是深入都是必要的
  • 還是講不好原始碼和專案,多練習
  • 專案介紹三步驟:目標、我產出的價值、專案收益
  • 面試問答三步驟:明確問題、拆分問題、簡潔概括

本文連結:【面經】阿里健康-2017年8月29日,散招實習生
作者:猴子007
出處:monkeysayhi.github.io
本文基於 知識共享署名-相同方式共享 4.0 國際許可協議釋出,歡迎轉載,演繹或用於商業目的,但是必須保留本文的署名及連結。

相關文章