【經典】一個大數據學習的解決方案

從0基礎小白到架構師,對於一個沒入行的小白來說,想都不敢想,它不僅需要時間的磨鍊,開發經驗的積累,更需要有合適的機遇與平臺。對於大數據技術應用方面,無論是傳統行業還是互聯網行業,經過這幾年的發展已經相當成熟。很多有IT基礎的小夥伴衝着大數據薪資高、待遇好、就業前景不錯,都爭先恐後的加入到大數據技術學習的行列中來,特別是有Java基礎的同學,因爲Java行業已趨近飽和,薪資幹了幾年沒見漲,職位晉升也無望,大數據成爲大家唯一的出路(因爲大數據90%以上的技術都是java開發的,過渡比較容易)。但大多數是三分熱度,最後無法堅持下去。原因不是不想學,確實是坑太多。

 

 

接觸過大數據技術的小夥伴應該比較瞭解,企業一般使用的大數據技術都是開源的,而且同類技術有很多種,一個完整的企業級項目實現需要多個層級技術的整合,包括數據獲取、數據存儲、數據計算、作業調度、數據分析以及大數據平臺構建、運維、監控、安全。大數據項目流程比較多,涉及到的技術也比較廣,這就需要大家有一個成熟的項目架構以及成熟的解決方案。也正因爲如此,成就了大數據行業很多的技術高手,而且也是大數據人才稀缺、薪水高的原因。

 

 

我做大數據也有小10年了,中間有很多小夥伴經常諮詢我,說也自學了很多大數據技術,也動手做了很多項目啊,咋面試都被pass掉了呢。詳細瞭解後,大部分都是到處找各種大數據學習資料和視頻,A網站找到了Hadoop、B網站找個Spark、C網站找個Flink,強行拼湊不成體系,學完似懂非懂。特別是項目這一塊,看了一些網課視頻,幾個技術組件一整合,項目流程跑通,還搞一個看起來高大上的可視化效果圖,以爲大功告成,可以出山找大數據工作了,結果說給面試官沒人信。

 

 

什麼原因呢?項目需求深入問說不明白,只知道統計了幾個指標數據;面試官讓畫個項目架構圖,也就簡單流程圖,細問早期項目架構什麼樣的,現在項目架構演進到什麼程度,一臉懵逼;數據具體從哪裏來,數據採集線上架構高可用拓撲圖,如何防止數據丟失和重複,說不明白;消費者消費能力不足時,如何提高併發度?Kafka分區如何優化?數據庫如何實現高併發、如何建模?做項目的過程中,遇到了哪些難點?是如何解決的?該項目在實際運行過程中遇到哪些瓶頸?又是如何調優的?如何解決Spark代碼升級checkpoint無法恢復問題?。。。

 

 

然後呢,沒有然後了,面試官微微一笑,回去等我們通知吧,顯然是沒戲。從老師錄製網課錄製視頻角度,給大家普及一下大數據技術,講講項目案例也沒有錯。從小夥伴學習的角度,我能花很少的錢,甚至不花錢,能學學大數據技術,也很上進,沒有問題。但是如果想通過拼湊的課程積累真實項目經驗,轉行找一個高薪的大數據工作,就有點不現實了。稍微清醒點小夥伴應該都知道:“免費的”其實是最貴的。一方面浪費大量的時間,時間是最寶貴的,特別是搞IT的人,喫的是青春飯;另一方面也會對大數據行業有誤解,學了這麼久也找不到大數據工作,認爲要麼自己學不會,要麼大數據前景不好。其實是自己走了彎路,被很多便宜視頻、免費視頻帶坑裏面出不來了。

 

 

所以借這篇文章爲大家分享一個經典的大數據項目的架構設計與解決方案,希望有Java基礎的小夥伴能通過這個項目,技術棧與項目結合,系統的學習,徹底感受大數據技術所帶來的成就感。切實體會根據所學的大數據技術能快速的構建大數據項目架構,並完整的得以實施,應用到生產環境中。

 

 

先來談談我們的項目需求:

打造企業級數據倉庫平臺,提供稅票數據全方位分析。

 

 

針對企業實際需求,你該如何設計一個項目架構滿足企業用戶需求呢?

 

我們先來看一看項目其中一部分成果:

 

 

上圖描述的只是一個維度的數據可視化大屏,數據倉庫平臺構建起來之後,可視化只是最後業務分析展示的最後一環。接下來我們要重點分享:數倉系統架構設計。這個頂層設計非常重要,它需要你完全掌握大數據各個技術基礎之上,深入理解需求,並做出專業的判斷而進行的架構設計工作。

 

數倉系統架構設計

 

 

 

 

架構圖中的所有技術在數倉系統平臺實施過程中都需要用到,所以圍繞這個項目的相關技術也需要我們掌握。呵呵,如果你能看懂這張架構圖,那恭喜你入行了,如果一臉懵逼,那說明你還只是一個菜鳥,要想成爲大牛,繼續努力吧。

 

數倉分層設計

 

 

數倉系統中重要的一個環節就是數倉分層設計。何爲數倉?顧名思義,數據存儲的倉庫。數倉大概分爲三層:第一層爲ODS源數據層, 所有業務數據原封不動導入ODS,實現業務系統與分析系統分離;第二層爲DW數據倉庫層,該層對數據進行脫敏以及數據的輕度彙總,涉及到數據的建模;第三層爲DM數據集市層,數據按照部門級別進行彙總。數倉爲什麼要分層?數倉類似與家裏的儲物間,物品少的時候,儲物間隨便堆放物品也能很快找到,如果有大量的物品隨便堆放在儲物間,很難快速找到你想要的物品。所以數倉也需要規劃,數據需要分類整理。市面上有很多“一堆數據+hive sql”的數倉課程,很容易把大家帶進坑去了。

 

大數據平臺構建與運維

 

 

 

大數據項目,生產環境玩的都是集羣,而且是自動化部署大數據集羣。沒有一個企業會在單臺機器上玩大數據應用,也很少有企業逐個節點手動安裝大數據集羣,除非個人學習玩玩還可以。而且在大數據項目上線後,大數據平臺的運維、監控、權限管理也是非常重要的,所以作爲一個成熟的大數據項目,我們需要的是一整套解決方案。

 

 

 

說了這麼多,怎麼感覺學完這個項目沒啥收穫呢?

 

 

學完這個數倉系統,還能做什麼呢?數據倉庫是大數據平臺所有數據的入口和出口,基於數據倉庫我們可以做大數據離線分析、大數據實時分析、企業用戶畫像、供應商推薦系統等等。

 

 

這下感覺收穫頗多,那具體該如何實施呢?

 

一個完整的企業級項目的全流程實施,從架構設計、技術選型、平臺構建、數據採集、數據交換、數據存儲、數據處理、作業調度、應用分析、數據可視化以及線上項目的運維、監控、安全等各個方面所要求的技術點比較多,如果你是一個大數據新手,不是幾篇文章能說的完整,也不是一朝一夕能完全搞明白。當然這並不是個人能力不行,而是大數據技術本身數量多、銜接起來坑比較多,需要考慮實際生產環境的方方面面。如果沒有大牛指導學習,你可能需要填一堆的坑,可能大數據剛開始學就放棄了。毅力好點的能堅持下來,很可能被自己收藏的demo案例視頻帶入另外一個坑裏面,不僅浪費了時間,對大數據的學習也失去信心。我絕不是危言聳聽,不信你可以去試試,哈哈。

 

 

如果你想盡快掌握過硬的大數據技術,積累真實的項目經驗,請加微信:971557118。不爲別的,只是讓大數據架構師的經驗有價值的得到分享。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章