1. 程式人生 > >大資料工程師必須要掌握的技能

大資料工程師必須要掌握的技能

現如今大資料行業如雨後春筍一般,苗頭已起一發不可收拾。國內 IT 、通訊、行業招聘中,有 10% 都是和大資料相關,且比例還在上升。巨大的人才缺口直接導致各企業紛紛以高薪聘請大資料人才
這裡寫圖片描述
據最新發布的《大資料人才報告》顯示,目前全國的大資料人才僅 46 萬,未來 3 - 5 年內,大資料人才的缺口將高達 150 萬,而在 BAT 企業招聘的職位裡,60% 以上都在招大資料人才。

高薪的背後是人才的緊缺,有機構對一線城市 2018 年國內科技領域熱門職位薪酬範圍、及跳槽漲幅進行了預測:大資料方向由於人才稀缺度較高,相同工作年限的情況下,大資料工程師的薪資普遍更高,待遇漲幅也會超過其他崗位。

隨著大資料的爆發,中國 IT 業內環境也將面臨新一輪的洗牌,不僅是企業,更是從業人員轉型可遇而不可求的機遇。如果將 IT 人士統一比作一條船上的海員,大資料就是最大的浪潮,借浪潮之勢而為之,可成功從 IT 程式設計師轉型成為大資料專家。

好了,首先我們定義自己的角色,對自己有一個精準的認識。比如拿筆者來說,對自己的定位是:“我是一名計算機專業畢業的工程師,有一定的數學基礎(特別是在微積分和線性代數方面),但數理統計和概率論部分不是我的強項。”另外最好別打腫臉充胖子,如果之前沒什麼經驗,承認自己是菜鳥也沒事,關鍵是找準自己的定位。

確定自己的定位後,我們需要對應到特定的大資料角色,以下是一些基本法則。

如果您具有良好的程式設計基礎且深入瞭解計算機的互動方式以及網際網路底層技術原理,但數學和統計學掌握得不深,那麼大資料工程可能是您今後學習的方向。

如果您有一定的程式設計基礎(掌握一些高階語言,如Python等),同時又有很強的數學功底,那麼大資料分析可能是您努力的方向。

學習路線

不管您屬於以上哪種角色,有一些大資料理論知識是您必須要掌握的,它們包括但不限於以下這些。

備份機制與一致性。

各種一致性模型:強一致性、弱一致性、最終一致性。

備份機制:主從的叫法已經不怎麼流行了,當前更酷的叫法是Leader-Follower模式。

共識協議:國內通常翻譯成一致性協議(consensus protocol)。學習常見的Paxos和Raft協議。

演算法和資料結構。

LSM:學習其與B+樹的區別以及優勢是什麼。

壓縮演算法:瞭解一個主流的壓縮演算法,比如Snappy、LZ4。另外Facebook最近開源了新一代的壓縮演算法Zstandard,據說可以完爆一切主流壓縮演算法。

Bloom Filter過濾器:大資料下O(1)的過濾器。

無論是學習大資料工程還是大資料分析,這些理論知識都是必要的,因為它們是設計很多分散式系統必備的技能。下面我們就針對不同的角色設計不同的學習路線。

大資料工程師

對於大資料工程師而言,您至少要掌握以下技能。

一門JVM系語言:當前大資料生態JVM系語言類的比重極大,在某種程度上說是壟斷也不為過。這裡筆者推薦大家學習Java或Scala,至於Clojure這樣的語言上手不易,其實並不推薦大家使用。另外,如今是“母以子貴”的年代,某個大資料框架會帶火它的程式語言,比如Docker之於Go、Kafka之於Scala。因此筆者這裡建議您至少要精通一門JVM系的語言。值得一提的,一定要弄懂這門語言的多執行緒模型和記憶體模型,很多大資料框架的處理模式其實在語言層面與多執行緒處理模式是類似的,只是大資料框架把它們引申到了多機分散式這個層面。

學習Java或Scala以及Python

語言有了,那麼工具呢?當然工具也會有。
這裡寫圖片描述
現在工具也有了,就該開始學習了。學習的話就需要教程,這個時候此處應有教程。

教程這裡是沒有,但是有資料,大資料資料免費領取,走過路過不要錯過。少俠你看這串神祕的數字:862879153,它像不像你待會要去加的那個群。Hadoop,hive,MapReduce,spark,kafka,HBase, ES,Impaala,等等

專案實戰包含:使用者行為分析(1·2),實時交易監控系統(1·2),推薦系統理論實戰(1·2)等等等等,應有盡有。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
結束語,DT 時代來得太突然了,國內發展勢頭很猛,而大資料相關的人才,卻非常的有限,在未來若干年內,都會是供不應求的狀況,指望大學培養出合格的大資料人才,有如天方夜譚,因此程式設計師們,你們的春天到了!
這裡寫圖片描述