java程式設計師3個月業餘時間學習 大資料路徑

金羅老師發表於2019-04-22

前言:

  • 一、背景介紹
  • 二、大資料介紹

正文:

  • 一、大資料相關的工作介紹
  • 二、大資料工程師的技能要求
  • 三、大資料學習規劃
  • 四、持續學習資源推薦(書籍,部落格,網站)
  • 五、專案案例分析(批處理+實時處理)

前言

一、背景介紹

本人目前是一名大資料工程師,專案資料50T,日均資料增長20G左右,個人是從Java後端開發,經過3個月的業餘自學成功轉型大資料工程師。

二、大資料介紹

大資料本質也是資料,但是又有了新的特徵,包括資料來源廣、資料格式多樣化(結構化資料、非結構化資料、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等:通過對儲存的資料進行預處理,加快運算速度的工具。

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

正文

一、大資料相關工作介紹

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

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

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

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

enter image description here


在這裡還是要推薦下我自己建的大資料學習交流群:199427210,群裡都是學大資料開發的,如果你正在學習  大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料軟體開發相關的),包括我自己整理的一份最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴加入。



必須掌握的技能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

總結如下:

必須技能10條:


Java高階(虛擬機器、併發)、Linux 基本操作、Hadoop(此處為俠義概念單指HDFS+MapReduce+Yarn )、HBase(JavaAPI操作+Phoenix )、Hive(Hql基本操作和原理理解)、Kafka、Storm、Scala需要、Python、Spark (Core+sparksql+Spark streaming )、一些小工具(Sqoop等)


高階技能6條:


機器學習演算法以及mahout庫加MLlib、R語言、Lambda 架構、Kappa架構、Kylin、Aluxio


三.學習路徑


java程式設計師3個月業餘時間學習  大資料路徑

java程式設計師3個月業餘時間學習  大資料路徑

java程式設計師3個月業餘時間學習  大資料路徑

java程式設計師3個月業餘時間學習  大資料路徑



相關學習書籍:Java 高階學習(《深入理解Java虛擬機器》、《Java高併發實戰》)、Hadoop、HBase(《HBase權威指南》)、Hive(《Hive開發指南》)、Scala(《快學Scala》)、Spark (《Spark 快速大資料分析》)


其他對應技能需求,如果你覺得自己看書效率太慢,你可以看一些課程,跟著課程走也OK 。這個完全根據自己情況決定,相反的話就自己看書。我把最重要的事情(要學什麼告訴你了),剩下的就是你去搜集對應的資料學習就ok了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561003/viewspace-2642194/,如需轉載,請註明出處,否則將追究法律責任。

相關文章