大數據學習路線(轉載)

正文:html

  • 1、大數據相關的工做介紹
  • 2、大數據工程師的技能要求
  • 3、大數據學習規劃
  • 4、持續學習資源推薦(書籍,博客,網站)
  • 5、項目案例分析(批處理+實時處理)

2、大數據介紹

大數據本質也是數據,可是又有了新的特徵,包括數據來源廣、數據格式多樣化(結構化數據、非結構化數據、Excel文件、文本文件等)、數據量大(最少也是TB級別的、甚至多是PB級別)、數據增加速度快等。java

針對以上主要的4個特徵咱們須要考慮如下問題:linux

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

  2. 數據採集以後,該如何存儲?,對應出現了GFS,HDFS,TFS等分佈式文件存儲系統。git

  3. 因爲數據增加速度快,數據存儲就必須能夠水平擴展。github

  4. 數據存儲以後,該如何經過運算快速轉化成一致的格式,該如何快速運算出本身想要的結果?算法

    對應的MapReduce這樣的分佈式運算框架解決了這個問題;可是寫MapReduce須要Java代碼量很大,因此出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;sql

    普通的MapReduce處理數據只能一批一批地處理,時間延遲太長,爲了實現每輸入一條數據就能獲得結果,因而出現了Storm/JStorm這樣的低時延的流式計算框架;shell

    可是若是同時須要批處理和流處理,按照如上就得搭兩個集羣,Hadoop集羣(包括HDFS+MapReduce+Yarn)和Storm集羣,不易於管理,因此出現了Spark這樣的一站式的計算框架,既能夠進行批處理,又能夠進行流處理(實質上是微批處理)。數據庫

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

  6. 爲了提升工做效率,加快運速度,出現了一些輔助工具:

    • Ozzie,azkaban:定時任務調度的工具。
    • Hue,Zepplin:圖形化任務執行管理,結果查看工具。
    • Scala語言:編寫Spark程序的最佳語言,固然也能夠選擇用Python。
    • Python語言:編寫一些腳本時會用到。
    • Allluxio,Kylin等:經過對存儲的數據進行預處理,加快運算速度的工具。

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

正文

1、大數據相關工做介紹

大數據方向的工做目前主要分爲三個主要方向:

  1. 大數據工程師
  2. 數據分析師
  3. 大數據科學家
  4. 其餘(數據挖掘等)

2、大數據工程師的技能要求

附上大數據工程師技能圖:

enter image description here

必須掌握的技能11條

  1. Java高級(虛擬機、併發)
  2. Linux 基本操做
  3. Hadoop(HDFS+MapReduce+Yarn )
  4. HBase(JavaAPI操做+Phoenix )
  5. Hive(Hql基本操做和原理理解)
  6. Kafka
  7. Storm/JStorm
  8. Scala
  9. Python
  10. Spark (Core+sparksql+Spark streaming )
  11. 輔助小工具(Sqoop/Flume/Oozie/Hue等)

高階技能6條

  1. 機器學習算法以及mahout庫加MLlib
  2. R語言
  3. Lambda 架構
  4. Kappa架構
  5. Kylin
  6. Alluxio

3、學習路徑

假設天天能夠抽出3個小時的有效學習時間,加上週末天天保證10個小時的有效學習時間;

3個月會有(21*3+4*2*10)*3=423小時的學習時間。

第一階段(基礎階段)

1)Linux學習(跟鳥哥學就ok了)—–20小時

  1. Linux操做系統介紹與安裝。
  2. Linux經常使用命令。
  3. Linux經常使用軟件安裝。
  4. Linux網絡。
  5. 防火牆。
  6. Shell編程等。

官網:https://www.centos.org/download/ 
中文社區:http://www.linuxidc.com/Linux/2017-09/146919.htm

2)Java 高級學習(《深刻理解Java虛擬機》、《Java高併發實戰》)—30小時

  1. 掌握多線程。
  2. 掌握併發包下的隊列。
  3. 瞭解JMS。
  4. 掌握JVM技術。
  5. 掌握反射和動態代理。

官網:https://www.java.com/zh_CN/ 
中文社區:http://www.java-cn.com/index.html

3)Zookeeper學習(能夠參照這篇博客進行學習:http://www.cnblogs.com/wuxl360/p/5817471.html

  1. Zookeeper分佈式協調服務介紹。
  2. Zookeeper集羣的安裝部署。
  3. Zookeeper數據結構、命令。
  4. Zookeeper的原理以及選舉機制。

官網:http://zookeeper.apache.org/ 
中文社區:http://www.aboutyun.com/forum-149-1.html

第二階段(攻堅階段)

4)Hadoop (《Hadoop 權威指南》)—80小時

  1. HDFS

    • HDFS的概念和特性。
    • HDFS的shell操做。
    • HDFS的工做機制。
    • HDFS的Java應用開發。
  2. MapReduce

    • 運行WordCount示例程序。
    • 瞭解MapReduce內部的運行機制。 
      • MapReduce程序運行流程解析。
      • MapTask併發數的決定機制。
      • MapReduce中的combiner組件應用。
      • MapReduce中的序列化框架及應用。
      • MapReduce中的排序。
      • MapReduce中的自定義分區實現。
      • MapReduce的shuffle機制。
      • MapReduce利用數據壓縮進行優化。
      • MapReduce程序與YARN之間的關係。
      • MapReduce參數優化。
  3. MapReduce的Java應用開發

官網:http://hadoop.apache.org/ 
中文文檔:http://hadoop.apache.org/docs/r1.0.4/cn/ 
中文社區:http://www.aboutyun.com/forum-143-1.html

5)Hive(《Hive開發指南》)–20小時

  1. Hive 基本概念

    • Hive 應用場景。
    • Hive 與hadoop的關係。
    • Hive 與傳統數據庫對比。
    • Hive 的數據存儲機制。
  2. Hive 基本操做

    • Hive 中的DDL操做。
    • 在Hive 中如何實現高效的JOIN查詢。
    • Hive 的內置函數應用。
    • Hive shell的高級使用方式。
    • Hive 經常使用參數配置。
    • Hive 自定義函數和Transform的使用技巧。
    • Hive UDF/UDAF開發實例。
  3. Hive 執行過程分析及優化策略

官網:https://hive.apache.org/ 
中文入門文檔:http://www.aboutyun.com/thread-11873-1-1.html 
中文社區:http://www.aboutyun.com/thread-7598-1-1.html

6)HBase(《HBase權威指南》)—20小時

  1. hbase簡介。
  2. habse安裝。
  3. hbase數據模型。
  4. hbase命令。
  5. hbase開發。
  6. hbase原理。

官網:http://hbase.apache.org/ 
中文文檔:http://abloz.com/hbase/book.html 
中文社區:http://www.aboutyun.com/forum-142-1.html

7)Scala(《快學Scala》)–20小時

  1. Scala概述。
  2. Scala編譯器安裝。
  3. Scala基礎。
  4. 數組、映射、元組、集合。
  5. 類、對象、繼承、特質。
  6. 模式匹配和樣例類。
  7. 瞭解Scala Actor併發編程。
  8. 理解Akka。
  9. 理解Scala高階函數。
  10. 理解Scala隱式轉換。

官網:http://www.scala-lang.org/ 
初級中文教程:http://www.runoob.com/scala/scala-tutorial.html

8)Spark (《Spark 權威指南》)—60小時

enter image description here

  1. Spark core

    • Spark概述。
    • Spark集羣安裝。
    • 執行第一個Spark案例程序(求PI)。
  2. RDD

    enter image description here

    • RDD概述。
    • 建立RDD。
    • RDD編程API(Transformation 和 Action Operations)。
    • RDD的依賴關係
    • RDD的緩存
    • DAG(有向無環圖)
  3. Spark SQL and DataFrame/DataSet

    enter image description here

    • Spark SQL概述。
    • DataFrames。
    • DataFrame經常使用操做。
    • 編寫Spark SQL查詢程序。
  4. Spark Streaming

    enter image description here

    enter image description here

    • park Streaming概述。
    • 理解DStream。
    • DStream相關操做(Transformations 和 Output Operations)。
  5. Structured Streaming

  6. 其餘(MLlib and GraphX )

這個部分通常工做中若是不是數據挖掘,機器學習通常用不到,能夠等到須要用到的時候再深刻學習。

第三階段(輔助工具工學習階段)

11)Sqoop(CSDN,51CTO ,以及官網)—20小時

enter image description here

  1. 數據導出概念介紹
  2. Sqoop基礎知識
  3. Sqoop原理及配置說明
  4. Sqoop數據導入實戰
  5. Sqoop數據導出實戰、
  6. Sqoop批量做業操做

推薦學習博客:http://student-lp.iteye.com/blog/2157983 
官網:http://sqoop.apache.org/

12)Flume(CSDN,51CTO ,以及官網)—20小時

enter image description here

  1. FLUME日誌採集框架介紹。
  2. FLUME工做機制。
  3. FLUME核心組件。
  4. FLUME參數配置說明。
  5. FLUME採集nginx日誌案例(案例必定要實踐一下)

推薦學習博客:http://www.aboutyun.com/thread-8917-1-1.html 
官網:http://flume.apache.org

13)Oozie(CSDN,51CTO ,以及官網)–20小時

enter image description here

  1. 任務調度系統概念介紹。
  2. 經常使用任務調度工具比較。
  3. Oozie介紹。
  4. Oozie核心概念。
  5. Oozie的配置說明。
  6. Oozie實現mapreduce/hive等任務調度實戰案例。

推薦學習博客:http://www.infoq.com/cn/articles/introductionOozie 
官網:http://oozie.apache.org/

14)Hue(CSDN,51CTO ,以及官網)–20小時

推薦學習博客:http://ju.outofmemory.cn/entry/105162 
官網:http://gethue.com/

第四階段(不斷學習階段)

天天都會有新的東西出現,須要關注最新技術動態,不斷學習。任何通常技術都是先學習理論,而後在實踐中不斷完善理論的過程。

備註

1)若是你以爲本身看書效率太慢,你能夠網上搜集一些課程,跟着課程走也OK 。若是看書效率不高就很網課,相反的話就本身看書。

2)企業目前更傾向於使用Spark進行微批處理,Storm只有在對時效性要求極高的狀況下,纔會使用,因此能夠作了解。重點學習Spark Streaming。

3)快速學習的能力、解決問題的能力、溝通能力**真的很重要。

4)要善於使用StackOverFlow和Google(遇到解決不了的問題,先Google,若是Google找不到解決方能就去StackOverFlow提問,通常印度三哥都會在2小時內回答你的問題)。

/*

5)視頻課程推薦:

能夠去萬能的淘寶購買一些視頻課程,你輸入「大數據視頻課程」,會出現不少,多購買幾份(100塊之內能夠搞定),而後選擇一個適合本身的。我的認爲小象學院的董西成和陳超的課程含金量會比較高。\

*/

4、持續學習資源推薦

    1. Apache 官網(http://apache.org/
    2. Stackoverflow(https://stackoverflow.com/
    3. Github(https://github.com/)
    4. Cloudra官網(https://www.cloudera.com/)
    5. Databrick官網(https://databricks.com/)
    6. About 雲 :http://www.aboutyun.com/
    7. CSDN,51CTO (http://www.csdn.net/http://www.51cto.com/
    8. 至於書籍噹噹一搜會有不少,其實內容都差很少。
相關文章
相關標籤/搜索