面試大數據分析師,這些基礎技術你都掌握了嗎?

本文主要面向的讀者是在校計算機/軟件相關專業想踏足大數據領域尋找相關實習機會的學生,以及剛工作1-2年想轉大數據方向的同學。

讀完本文,你將收穫大數據技術學習的基本方向,以及在面試前需要準備和複習的常見面試題。

在數據時代的今天,大數據行業是最熱門的行業之一。在大數據行業中,大數據分析師是需求量最大的崗位,很多高校也都專門開設了大數據專業,培養數據分析方面的人才。

今天我們就這個話題,結合筆者多年的面試官經歷,來聊一聊,如果面試大數據分析師崗位(初、中級),需要掌握哪些基本的技術技能。

在日常的工作中,大數據分析師的核心工作內容便是從大量數據中,通過數據處理、統計分析和算法挖掘等技術手段,將數據轉換成有效的信息,從而進一步轉化為知識並內化為智慧。

因此,涉及的技術會非常廣泛,這取決於具體的業務需求和公司技術架構。本文我們著重介紹大部分公司常用的技術,也是面試中最容易被問到的技術。

下圖為互聯網公司常見的大數據技術棧:

面試大數據分析師,這些基礎技術你都掌握了嗎?

圖 1.互聯網公司常見大數據技術棧

上圖中,綠色的部分為面試中經常被問到的基礎技術,黃色部分為加分項,藍色部分通常不會直接用到,但是也需要有一定的瞭解。

本文主要圍繞綠色的部分,講解下這些技術的應用場景、解決的問題及面試中需要掌握的基礎內容。根據其功能性和應用場景不同,可以進行以下分類。

互聯網科技發展蓬勃興起,人工智能時代來臨,抓住下一個風口。為幫助那些往想互聯網方向轉行想學習,卻因為時間不夠,資源不足而放棄的人。我自己整理的一份最新的大數據進階資料和高級開發教程,大數據學習群: 740041381就可以找到組織學習 歡迎進階中和進想深入大數據的小夥伴加入

圖2.大數據基礎技術棧

大數據分析師的日常工作流程大致如下:

面試大數據分析師,這些基礎技術你都掌握了嗎?

1.設計定義要收集的數據,並由數據收集系統完成收集;

2.完成數據的預處理,將數據轉化為結構化的數據;

3.根據業務需求,對數據進行離線SQL分析或者實時分析得到相應的結果信息;

4.將上述結果信息通過數據可視化工具呈現出來,通過對比分析其趨勢或差異,推導出相應的結論。

相信聰明的同學已經看出來了,圖2中羅列的技術便是從數據分析工作的每個環節中,選擇了一個典型代表。筆者結合多年來的面試經歷,以及工作中實際使用經驗,來一一做下簡單介紹。

數據存儲

從存儲的數據的內容來看,數據存儲分為離線文件存儲和結構化結果數據存儲,其中離線文件存儲,主要解決的問題是存儲大量的數據,常用的技術是HDFS;而結構化結果數據存儲,主要目標是方便存取和修改,常用的技術是MySQL和Hbase。

HDFS

大數據最基礎的組件之一,其核心功能是存儲海量的數據,存儲方式為文件。對於初級分析師來說,只需要掌握其運行的基本原理,熟悉常用的命令行指令即可,常見面試題如下:

1. HDFS正常啟動後主要有哪些進程在運行,其作用分別是什麼

2. HA主要由什麼進程負責,其工作原理是什麼

3. 兩個NameNode間如何完成數據同步

4. 客戶端上傳數據的流程是什麼

5. 常用的查看、刪除、上傳、下載和查看active節點的命令是什麼

面試大數據分析師,這些基礎技術你都掌握了嗎?

MySQL

MySQL是最流行也是久經考驗的關係型數據庫,早在大數據技術崛起之前就已經廣泛使用。準確來說,其並不算大數據技術之一。

MySQL在技術棧中的主要作用是存儲大數據分析後產出的結果數據,因此熟練掌握MySQL也是必備技能之一。日常的工作應用場景主要是對MySQL進行存取數據操作,因此需要掌握的主要內容是數據表設計、數據的存取、查詢SQL等。

核心面試題如下:

面試大數據分析師,這些基礎技術你都掌握了嗎?

1. 表設計時的注意事項或技巧

2. 索引的類型和作用

3. 常見的SQL優化技巧

4. 主從同步的基本原理流程

5. 常用的SQL函數有哪些

Hbase

MySQL屬於單機版應用,不適合存儲大量的數據,當需要存儲大量數據且要方便存取修改的場景出現時,屬於NoSQL陣營的Hbase就需要出來扛大旗了。

Hbase的主要特點是面向列設計的KV存儲,在日常工作中,對Hbase的使用也主要是表設計和存取操作,核心的面試題如下:

1. hbase和mysql的主要區別是什麼

2. rowkey的設計原則是什麼

3. 舉一個之前設計rowkey的實際場景案例

4. zookeeper在hbase集群中的主要作用是

5. 常用的hbase指令有哪些

面試大數據分析師,這些基礎技術你都掌握了嗎?

數據分析

數據分析一般分為離線分析和實時分析。由於現在多數公司都構建了自己的數據倉庫體系,因此多數離線分析都是通過SQL完成的,常用的框架為Hive和SparkSQL,少部分會使用MapReduce和SparkCore通過編寫代碼實現。而對於實時數據分析,市面上的框架較多,其中StructedStreaming相對容易上手些。

關鍵技能面試題如下:

1. hive內部表和外部表的區別

2. hive導入導出數據的幾種方式

3. hive自定義函數(UDF)的開發和部署流程?如何創建永久函數

4. 常用的hive窗口函數,並舉出一個實例

5. sparksql如何連接hive的元數據

6. spark中寬窄依賴的含義及區別,舉幾個算子的例子

7. 數據傾斜常見的幾種形式及解決方案

8. 如何理解structured streaming的無限增長表

9. 如何理解structured streaming基於事件時間的窗口操作

10. structured streaming不支持的操作有哪些

面試大數據分析師,這些基礎技術你都掌握了嗎?

消息中間件

消息中間件是系統中各應用程序通信的關鍵通道,其主要作用為應用間解耦、異步操作、削掉高峰、提供緩衝、實時數據傳輸等。Kafka是最常用的大數據消息隊列,通常都會使用它實現實時數據流的接入,其核心面試題如下:

1. kafka的核心基礎概念,consumer、consumerGroup、topic、partition、replication等的含義

2. kafka高效文件存儲設計的特點

3. kafka消息接收的三種模式是什麼

4. 常用kafka命令行指令有哪些

面試大數據分析師,這些基礎技術你都掌握了嗎?

資源管理調度

為了提升分佈式集群的資源利用率,通常都會使用資源管理調度框架來對計算資源(如CPU、內存、磁盤、網絡等)進行統一管理、分配和調度。hadoop生態,最常用的框架為YARN。對於大數據分析師來說,YARN工作在底層,很少會去直接用到它,但是瞭解其基本原理對理解計算過程、排查問題,很有幫助。其需要了解的面試題如下:

1. yarn作業兩種提交模式的區別

2. 如何查看提交到yarn上的作業的日誌

3. 如何殺死一個正在執行的yarn作業

面試大數據分析師,這些基礎技術你都掌握了嗎?

數據可視化

統計分析的結果是由一組數字組成的數據,往往並不直觀,因此需要藉助可視化工具,將其以圖形化的方式呈現出來,這樣更容易找出藏在數據間的規律。這類工具有很多,有些公司會基於echarts、highcharts等自主研發可視化工具,也有大廠開放出來的工具,如阿里的datav、百度的sugar,還有一些商用收費軟件,如國外的tableau。

數據可視化的技術難度並不大,通常面試時會問一下之前可視化的經驗。tableau面向高校學生和老師提供的免費的tableau激活碼,學生證書的使用有效期為一年。學生可以申請試用,跟著教程自己嘗試做幾個可視化報表,面試時絕對是個加分項。

面試大數據分析師,這些基礎技術你都掌握了嗎?

結語:

本文只是初步整理了一些面試技術問題,旨在給未入門或剛入門的同學提供一個學習的方向。

雖然這些問題很容易找到答案,通過刷題和背答案可以很快掌握這些面試題,順利過關。但是筆者還是希望大家在打基礎的階段儘量多下功夫,打好基本功,帶著這些問題去學習,效果會事半功倍。

當然面試前複習下是無可厚非的,如果大家感興趣可以在留言區留言,我會考慮針對基礎核心技術結合在公司長年的面試經驗,再整理一個面試題的解題合集(問題+答案+分析過程)。


分享到:


相關文章: