騰訊技術面試

2021-07-05 08:22:24 字數 1773 閱讀 4684

gdb如何進入程序空間,如何查詢多執行緒的乙個bug?

hadoop的結構?

hive是什麼?用來做什麼的?

zookeeper的作用,怎麼實現資料的一致性的?

nginx為什麼高效?

然後是三個手動寫程式的題目:

1、單鏈表的刪除,請盡量寫出多的情況;

2、1億條資料,每個資料都是int型,資料的大小在03、還是接上面2的情況,如何找出出現頻率最高的20個。

第乙個gdb怎麼進入程序空間,不曉得,沒有答上來,沒這方面的經驗。orz!!!後面檢視資料得知答案為:使用gdb attach $(pid)或者gdb --pid $(pid)可以進入程序空間!

第二個hadoop結構,俺倒騰過一段時間的hadoop,對這個生態環境很熟悉,hadoop呢,主要是由hdfs+mapreduce組成基本的框架,基於此框架之上有hbase半結構化的資料庫、hive、pig、zookeeper。還有個日誌監控chuwka以及flume。blalala。。。。

第三個,hive是hadoop上面乙個資料倉儲,需要特別注意的是hive不是乙個資料庫,是倉庫,hive其實就是乙個面向使用者的介面,可以使得使用者使用類sql語言來查詢hdfs或者hbase(注意這個是乙個資料庫)上面的資料,可以使得sql使用者很快地轉向hadoop的使用,hive的就是將使用者寫的這些類sql語言轉化成mapreduce並行化任務,加速查詢的速度以及效率。

第四個問題,zookeeper就是保證hadoop集群中資料的一致性,為什麼有這個需求呢?因為hdfs儲存資料的時候,一般會有兩個備份,這樣是為了提高系統的容錯能力以及健壯性。實現資料一致性的時候,集群中執行zookeeper的機器,需要通過乙個演算法選擇出乙個server,使得其他的server的資料與這個server上的資料保持,然後如果有資料寫入就按照前面的方法繼續選擇然後同步,其實這個選擇演算法使用的是paxos,這個演算法的邏輯性還是比較強的,當時面試小哥沒怎麼問,我也沒怎麼搞搞懂,有時間我好好好研究下。

第五個問題,nginx為何高效,就是使用了epoll模型,然後select與epoll有啥區別,select函式被呼叫的時候發生阻塞,然後又i/o事件的時候,返回所監控的控制代碼集合裡面可讀、可寫或者異常的控制代碼個數,然而select並不知道到底是那個控制代碼,然後需要把所監控控制代碼集拷貝到核心空間,然後進行輪詢,找出事件發生的i/o。關於其他的,本人在部落格中多次提及,這裡就不再贅述了。

然後三個程式設計題目:

1、單鏈表的刪除,我主要寫了兩種情況,當前節點以及當前節點的下乙個節點。具體怎麼寫就不說了很簡單。

2、第二個題目,首先想到地思路就是快速排序,把大的數往前放,尋找位置為20的地方,找到就結束快排,然後前20個就是最大的20個。這種方法只是其中的一種,感覺效率不是很高,當時面試的時候,比較熟悉快速排序的**,所以就寫了快速排序,後面仔細想想這個方法有個問題!一億條資料,都是int型,建立乙個容量為1億的陣列,這樣是可以的,但是每個資料為int性,這樣下來全部讀入記憶體,使用內排序演算法,需要的記憶體空間要達到至少3.8gb,我天!鵝廠雖說這點不是事兒,但是一段時間內對伺服器的負荷造成壓力啊!

用啥演算法好點兒呢?回到實驗室,實驗室乙個師弟提醒了下前段時間研究者july來我邊家村電子職業技術學院講的演算法。小頂堆,突然間豁然開朗啊,這樣就可以避免這麼大量占用記憶體,但是i/o開銷又上去了,其實可以使用快取區來緩解下,具體的方法就是建立乙個20個大小的陣列,從1億條資料中讀入20個,存入此陣列,然後調整為小頂堆,那麼陣列首位元素也就是堆頂是這個陣列中最小的元素,然後開始讀入資料與堆頂元素比較,替換堆頂的數字,然後調整堆,然後就這樣繼續,直到遍歷完整個資料檔案。其實這個演算法也不是很好,犧牲了i/o的效率換取記憶體,其實可以調整堆陣列的大小以及新增快取區來使得效率增加。

騰訊2016校招技術崗面試經歷

關於筆試 只要前期複習到位,筆試還是很好過的,但是當然 分數 越高越好,否則後面會被面試官鄙視的。題目可能難度較大,但是要把會做的 都做 對,如果時間比較緊可以適度屏棄部分不會的題目。關於面試 9.14 晚上6點半 一面 30min 提前乙個小時到了酒店,簽到完就坐那裡等,雖然還沒來得及吃晚飯,但是...

騰訊面試經歷

linux和os netstat tcpdump ipcs ipcrm 如果這四個命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 這四個命令的熟練掌握程度基本上能體現面試者實際開發和除錯程式的經驗 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網...

騰訊面試經驗

三面是總監面,本人不幸被拒了,這次面試沒有問專案相關的問題,專案的問題是放在二面問的。三面給人的感覺要求很嚴,有些問題看似基礎,但問得很細,稍有閃失就被pass,絕不能有模稜兩可那種回答,以下是面試題 1 tcp三次握手的過程,accept發生在三次握手哪個階段?2 tcp流,udp的資料報,之間有...