1. 程式人生 > >如何輕鬆的學習大資料入門到精通——學習必看

如何輕鬆的學習大資料入門到精通——學習必看

大資料介紹

 

大資料本質也是資料,但是又有了新的特徵,包括資料來源廣、資料格式多樣化(結構化資料、非結構化資料、Excel檔案、文字檔案等)、資料量大(最少也是TB級別的、甚至可能是PB級別)、資料增長速度快等。

針對以上主要的4個特徵我們需要考慮以下問題:

  1. 資料來源廣,該如何採集彙總?,對應出現了Sqoop,Cammel,Datax等工具。

  2. 資料採集之後,該如何儲存?,對應出現了GFS,HDFS,TFS等分散式檔案儲存系統。

  3. 由於資料增長速度快,資料儲存就必須可以水平擴充套件。

  4. 資料儲存之後,該如何通過運算快速轉化成一致的格式,該如何快速運算出自己想要的結果?

    對應的MapReduce這樣的分散式運算框架解決了這個問題;但是寫MapReduce需要Java程式碼量很大,所以出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;

    普通的MapReduce處理資料只能一批一批地處理,時間延遲太長,為了實現每輸入一條資料就能得到結果,於是出現了Storm/JStorm這樣的低時延的流式計算框架;

    但是如果同時需要批處理和流處理,按照如上就得搭兩個叢集,Hadoop叢集(包括HDFS+MapReduce+Yarn)和Storm叢集,不易於管理,所以出現了Spark這樣的一站式的計算框架,既可以進行批處理,又可以進行流處理(實質上是微批處理)。

  5. 而後Lambda架構,Kappa架構的出現,又提供了一種業務處理的通用架構。

  6. 為了提高工作效率,加快運速度,出現了一些輔助工具:

    • Ozzie,azkaban:定時任務排程的工具。
    • Hue,Zepplin:圖形化任務執行管理,結果檢視工具。
    • Scala語言:編寫Spark程式的最佳語言,當然也可以選擇用Python。
    • Python語言:編寫一些指令碼時會用到。
    • Allluxio,Kylin等:通過對儲存的資料進行預處理,加快運算速度的工具。

以上大致就把整個大資料生態裡面用到的工具所解決的問題列舉了一遍,知道了他們為什麼而出現或者說出現是為了解決什麼問題,進行學習的時候就有的放矢了。

 


大資料是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不
斷的成長!大資料學習群:868847735  一起討論進步學習

一、大資料相關工作介紹

大資料方向的工作目前主要分為三個主要方向:

  1. 大資料工程師
  2. 資料分析師
  3. 大資料科學家
  4. 其他(資料探勘等)

二、大資料工程師的技能要求

附上大資料工程師技能圖:

 

大資料開發學習可以按照以下內容進行學習:

第一階段:JavaSE+MySql+Linux

學習內容:Java 語言入門 → OOP 程式設計 → Java 常用Api、集合 → IO/NIO → Java 實

用技術 → Mysql 資料庫 → 階段專案實戰 → Linux 基礎 → shell 程式設計

學習目標:學習java語言,掌握java程式編寫、面向物件程式開發,掌握MySql體系結構及核心程式設計技術,打好 Linux 基礎,為後續學習提供良好的語言基礎。

第二階段:Hadoop 與生態系統

學習內容:Hadoop → MapReduce → Avro → Hive → HBase → Zookeeper →Flume → Kafka → Sqoop → Pig

學習目標:掌握大資料學習基石Hadoop、資料序列化系統與技術、資料的統計分析、分散式叢集、流行的佇列、資料遷移、大資料平臺分析等

第三階段:Storm 與Spark 及其生態圈

學習內容:Storm → Scala → Spark → Spark SQL → Spark Streaming →Spark 機器學習

學習目標:讓大家擁有完整專案開發思路和架構設計,掌握從資料採集到實時計算到資料儲存再到前臺展示,所有工作一個人搞定!並可以從架構的層次站在架構師的角度去完成一個專案。

第四階段:其他

學習內容:Mahout 機器學習→ R 語言→Python

學習目標:機器學習領域經典演算法的實現,熟練使用 R語法和統計思維,可以基於具體問題建立數學模型,掌握python技術與資料分析,將資料結果以視覺化的直觀方式展示給目標使用者。

第五階段:專案實戰、技術綜合運用

學習內容:某手機公司bug 系統 → 傳統廣告怎麼用大資料 → 類網際網路電商網站 → 網站日誌收集清洗系統 → 網站流量統計分析系統

學習目標:具備企業級大型完整專案開發能力,綜合運用大資料分析知識,完成資料分析、收集、展示的完整流程。

大資料開發相比於資料分析和挖掘來說,對程式設計基礎要高一些,對於零基礎學員也會比較困難。然,有道是“有志者事竟成”,用心學習大資料開發,每個人都會有所收穫。