大數據開發工程師面試題(附答案)

2021-02-21 北京積雲教育

之前採訪畢業生的時候,有小夥伴提出意見,想看小編分享一些面試的乾貨,於是小編不負眾望,今天給大家帶來了一篇大神級面經,希望可以幫助即將畢業或正在找工作的小夥伴兒們,祝你們早日找到心儀的工作!

MapReduce


1. 不指定語言,寫一個WordCount的MapReduce

我:最近剛學了scala,並且就有scala版本的WordCount,剛好學以致用了一下:



補:至於java版本,蝦皮博主的一篇文章講解的非常細緻: 
Hadoop集群(第6期)_WordCount運行詳解

http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html

2. 上述寫的程序中.map((_,1))的輸出結果是什麼

我:通過flatMap將其扁平化,而.map((_,1)) 則是每個出現單詞,1這樣的形式展現,此時還沒歸併。

3. 你能用SQL語句實現上述的MapReduce嗎?要求按照基於某個欄位的值的頻次倒序,並且以維度——頻次的形式結果展現?

我:基於某個欄位——決定了要用group By,頻次要用count聚合,倒序自然少不了desc。 


補:框架搭好就是往裡塞了:

4.給你一份亂序的100萬個數字的文件,你如何來排序?

我:先拆分成若干小的,然後再排(思路是從希爾排序出發的) 
補:內部排序算法:希爾排序

Spark1. 說一說Spark程序編寫的一般步驟?

我:初始化,資源,數據源,並行化,rdd轉化,action算子列印輸出結果或者也可以存至相應的數據存儲介質 


補:具體的可看下圖:


2. Spark有哪兩種算子?

我:Transformation(轉化)算子和Action(執行)算子。

3. Spark提交你的jar包時所用的命令是什麼?

我:submit。 
面試官:spark-submit? 
我:嗯,spark-submit。

4. Spark有哪些聚合類的算子,我們應該儘量避免什麼類型的算子?

我:aggeragate 
面試官:還有呢? 
我:記不清了。。。 


面試官:還有你剛剛寫的那個groupByKey哈 


補:

在我們的開發過程中,能避免則儘可能避免使用reduceByKey、join、distinct、repartition等會進行shuffle的算子,儘量使用map類的非shuffle算子。這樣的話,沒有shuffle操作或者僅有較少shuffle操作的Spark作業,可以大大減少性能開銷。


5. 你所理解的Spark的shuffle過程?

我:spark shuffle處於一個寬依賴,可以實現類似混洗的功能,將相同的Key分發至同一個Reducer上進行處理。 


補:詳細探究Spark的shuffle實現

http://blog.csdn.net/johnny_lee/article/details/22619585

6. 你如何從Kafka中獲取數據?

我:topic 
補:分布式消息系統:Kafka

7. 對於Spark中的數據傾斜問題你有什麼好的方案?

我:可以先分析基數大造成數據傾斜的維度,將其適當的拆分。 


補:Spark性能優化指南:高級篇

編程


1.如果我有兩個list,如何用Python語言取出這兩個list中相同的元素?

我:list(set(list1).intersection(set(list2))),通過set 的intersection取交集的函數實現相同元素的提取。

2.請你給出在Python中較快獲取一個元素的數據結構,並且說出其時間複雜度以及它的缺陷是什麼?

我:因為之前也在做一些leetcode上的題目,多多少少重溫了下數據結構,當時腦海裡呈現的是數組方便查找,隊列和棧方便插入刪除,所以一聽到較快獲取果斷數組了。 


面試官:dict(字典) 
我:厲害!! 


面試官:那它的時間複雜度你曉得嘛? 
我:不是特別了解,O(1),常數時間複雜度? 


面試官:嗯,那你知道它的缺陷嗎? 
我:(中午吃撐了,TradeOff哈)不曉得 


面試官:空間複雜度較高哈 


補: 反思了一下,之所以說錯,可能和以前學習算法時,起承轉合的過度,並未將棧、隊列和map,或者dict直接比較,而是從數組切換到隊列和棧,所以就和之前的那個PUT和POST差不多,訓練邏輯正確,確實數組查詢記錄方便,但訓練廣度有些多樣性不夠。 



算法備忘錄——基礎數據結構與複雜度 
常用數據結構和算法操作效率的對比總結

3. 做幾道OJ的題目(英文的),說一說這個問題的要求和注意點,以及可以獲得正確結果的你的思路?

恢復IP位址

Given a string containing only digits, restore it by returning all possible valid IP address combinations.
Example
Given 「25525511135」, return
[
「255.255.11.135」,
「255.255.111.35」
]
Order does not matter.

我:思考了一會兒,沒想出來,只能想出個不通用的思路。 
面試官:給你個提示,嘗試用樹這個數據結構。 


補:此處埋一個坑,學完樹的數據結構再回來解決。

快樂數

Write an algorithm to determine if a number is happy.
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example
19 is a happy number
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1

我:思路是模擬過程法,即按照它驗證一個數是否是快樂數的方式進行模擬,當然也有些取巧的方式,如果某個中間結果曾出現過,妥妥滴死循環嘛,即刻跳出。 


面試官:思路是對的 
我:我覺得這會TLE,肯定有取巧的方法(這道題目之前好像接觸過) 


補:回去搜了一下,發現之前一直求助的一個大神的博客通過模擬過程用Python實現的: 
Happy Number (之前的懷疑有更巧方法在於時常保持偷懶的思維也是必要的)

4. 你常用的IDE有哪些?

我:Java:Eclipse;Python:PyCharm;Scala:IntelliJ IDEA;Shell:VIM

5. 你了解設計模式嗎?

我:不了解,但以後回去買本O』Really的《設計模式》 
補:封面如下:

6. 什麼是Restful API?

我:由於對Restful的了解只停留在使用層面,給我的感覺像是一種資源的提交獲取,GET獲取,POST/DELETE/PUT都可以看作是一種提交操作 


補:

【專業定義】:一種軟體架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器交互類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現緩存等機制。

RESTful百度百科


Devops


1. 資料庫讀寫分離的目的是什麼?

我:①減輕負載;②權限控制 


補:讀寫分離的作用 
看了上面的文章,減輕負載是首要目的,至於權限控制,更像是一種實現方式,不像目的。

2. ZooKeeper是什麼?非大數據領域,我們可以用ZooKeeper來做些什麼?

我:ZooKeeper是分布式協調組件,非大數據領域,可以用ZooKeeper來做HA或者存儲數據,比如配置信息啥的。(Znode) 
補:ZooKeeper 典型應用場景一覽

更多資訊

 領導者說

相關焦點

  • Google人工智慧面試·真·題(附參考答案+攻略)
    然而想要「應試」成功,考驗的不僅僅是開發人員的編程技術,還能側面考驗著參賽者的渠道來源是否廣泛、背景力量是否強大、腦洞迴路是否清奇……不過,夢是要做的,簡歷是要投的,說不準面試就來了呢?所以,我們需要為萬一砸到頭頂的面試,做好一萬的準備。
  • 萬字長文,20-50K前端工程師部分面試題集錦 - 附答案(收藏!)
    小提示:如果發現小公司面試套你的技術和架構,迅速結束,開出天價薪資走人 下面正式公布部分面試題,以及答案出於對各個公司的尊重,不公布是哪家公司的面試題,以及面試技巧。只公布部分面試題和答案,以及分析問題的角度,學習方向,面試中考察的不僅僅技術深度,還有廣度,每個人不可能技術面面俱到,前端學習的東西太多,忘掉一部分也是正常。
  • 算法工程師常見面試問題及相關資料匯總(附簡歷模板)
    阿里巴巴計算機視覺算法實習生視頻面試 website面試經驗AI算法工程師(面試官角度) website從零基礎到BAT算法崗SP——秋招準備攻略 website螞蟻金服/曠視/虹軟/騰訊優圖暑期實習offer面經 website我在美團的這兩年(附校招筆試/面試/面經分享) website1000 面試題,BAT
  • 工程師面試,標準答案!
    標準答案:「我們搞開發的,從來不知道什麼是 『累』,因為我們都是沒日沒夜加班!」面試官問:「請解釋一下,對象」標準答案:「我們不需要『對象』,對象比較浪費時間,影響我加班!」面試官問:「周末加班有沒有問題?」標準答案:「我不要加班費,就不算加班!算郊遊!我喜歡周末到公司郊遊!」
  • 這個Github項目,搞定前端開發所有React 面試題
    :Vue,React,Angular 牢牢佔據,Vue,React,Angular三巨頭也是我們前端開發工程師必須要學習的內容之一,三大前端框架相關問題在面試中常常會著重被面試官提問到。在以往的文章中總結過Vue和Angualr相關的前端開發面試題,今天就來總結分享一下常考的 React 相關面試題和答案。這份React面試題總結來自Github,目前,這個 reactjs-interview-questions 項目在GitHub上已經獲得 1911 個Star,333個Fork。
  • 2020年BAT大廠PHP工程師面試題整理(附帶答案)
    今天下午來到北京百度科技園進行面試PHP工程師崗位。
  • 大數據工程師簡歷怎麼寫,更受到HR青睞?
    大數據工程師,作為近年來的新興技術崗,瞄準這個崗位的人也不少。今天我們就來分享,大數據工程師簡歷怎麼寫,更受到HR青睞?通常來說,HR篩選簡歷,比較關注的幾個部分如下:畢業學校以及學歷,對應的專業或者研究方向。工作年限。工作經歷,即跳槽史。項目經歷。
  • 面試官:說一下row_number等3大排名函數的區別
    面試官:說一下row_number,rank和dense_rank
  • iOS 開發面試通關指南:67 個必知問題!
    ——不管你是第一次參加面試的新手,還是已經有幾年開發經驗做背書的業內人士,面試都會帶來壓力。這是「面試必問」的一道題。但是有些開發人員並不知道答案。47. Constraint priorities, hugging priority, 以及compression resistance priority:它們是什麼,以及它們是如何工作的?希望你不是那類一遇到約束衝突,就把所有約束的優先級都設置為999的人。48.你在iOS中製作過的最複雜的動畫是什麼?你是怎麼做的?
  • 【新年跳槽必備】2020最新(前端原生JS專題)面試題 速領!
    每期面試題都是Richard老師認真準備的真的希望能幫到大家哦本期是前端原生JS專題1. javascript的typeof返回哪些數據類型.2.列舉javaScript的3種主要數據類型,2種複合數據類型和2種特殊數據類型。39. 程序中捕獲異常的方法?40. Ajax原理說明:大部分來自於朝夕教育學員從面試現場帶回來的真實筆試面試題,最新(前端原生JS專題)面試題,是您找工作的必勝法寶!!
  • 大廠面試必考的算法題有多難?瑟瑟發抖……
    3、日常開發中的性能問題需要通過優化算法和數據結構來解決。4、底層開發中需要使用非常多的數據結構和算法知識,以保證底層系統的穩定性和高效性,例如,華為EMUI系統通過優化算法和數據結構來保障系統使用2年不卡頓。5、計算機科學的很多新行業都離不開數據結構和算法作為基石,如大數據、人工智慧等等。面對如此重要的能力,很多人卻並不重視,只知道臨陣磨槍。
  • 小米、搜狗、TW等機器學習算法工程師面試總結
    以下機器學習算法工程師的面試題目,出自曉文學習筆記,閱讀更多文章,歡迎加入曉文的公眾號:一面:1、問項目
  • 大廠面試過程復盤(微信/阿里/頭條,附答案篇)
    背景本人前端,3年經驗,由於個人的原因,決定跳槽,於是大概3月開始找工作,總歷時大概2個月,面試了微信/阿里/頭條,三家都拿到了offer,來分享一下面經。問題比較多,而且很多面試題都是跟個人項目相關的,項目相關的問題借鑑意義不大,所以這裡總結一些與項目無絕對關係的問題,歡迎圍觀~整體流程這裡,我梳理了一些自己的心得,先放個思維導圖。微信筆試數組交集,編寫一個函數,輸入兩個數組,輸出它們的交集。
  • 如何面試 iOS 工程師?
    http://toutiao.io/download這個問題已經有很多優秀的答案了,但最近一周面試了很多iOS開發,也準備了一些題目,忍不住發上來...首先需要聲明的是,此次的面試者大多在有1~3年的iOS開發經驗,並非需要找一個真正的大牛,所以我準備的題目,自己覺得大多數還是比較基礎,比較能夠看出這個層次的人的水準的。
  • 55個必考金融面試題,面試官親自發答案啦!
    >我以為的優秀答案是醬紫的👇【當過面試官的在職前輩給出的回答】對比兩個答案,你能得出什麼結論呢?很明顯,面試官更欣賞的是能從實際工作出發,結合時事,簡單直接切中要害的答案,同學參考完資料之後給出的答案只是大侃理論知識,過於「學生思維」
  • 自學14天後,我毀掉了自己的數據工程師面試
    我將我的面試經歷寫下來,希望能夠為那些掙扎在求職路上的人們提供一些幫助。本文最初發表在 Medium 博客,經原作者 Emanuele Maruzzi 授權,InfoQ 中文站翻譯並分享。我既然寫下本文,就應對讀者赤誠相見。我真的不是優秀的數據工程師,也不是優秀的軟體開發人員。儘管如此,但技術能力我可能還是有的,而且也有幹勁。
  • 面試常掛題:你最大的缺點是什麼?
    網上有很多答案:這也太假了吧,面試官也是從面試者過來的,他也都上網查過知道這些答案,難道問出來是想聽一個網上的答案嗎?破解之道所有的面試問題的破解之道都在於換位思考,即:如果你是面試官,你想通過這題問什麼?看出來什麼?退一步來想,你是如何知道自己的缺點的呢?
  • 0經驗小白,如何逆襲FLAG大廠工程師?
    只要做好規劃、找對方法、努力學習,從零基礎小白到FLAF大廠Offer,絕對不是異想天開的白日夢~今天,咱們就來聊聊如何成為一名FLAG大廠軟體工程師!編程是成為軟體工程師的必備技能,也是最重要的一項技能。首先,咱們就來看看具體怎麼學習編程!
  • 前端面試題(理論知識+HTML+CSS+JavaScript)襲來,請接招!【附答案】
    之前我也收集整理分享了一些前端面試題目的文章,有的附了答案,有的沒有附答案;雖然我們不是為了做題而做題目,也不是只為了在面試中過關,我們做題目的
  • C/C++程式設計師應聘常見面試題深入剖析
    來自:紅臉書生 - 博客園連結:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741367.html許多面試題看似簡單此外,還有一些面試題考查面試者敏捷的思維能力。分析這些面試題,本身包含很強的趣味性;而作為一名研發人員,通過對這些面試題的深入剖析則可進一步增強自身的內功。