進階指南|三個月大資料工程師學習計劃
申明:本文旨在為普通程式設計師(Java程式設計師最佳)提供一個入門級別的大資料技術學習路徑,不適用於大資料工程師的進階學習,也不適用於零程式設計基礎的同學。
前言
一、背景介紹
本人目前是一名大資料工程師,專案資料50T,日均資料增長20G左右,個人是從Java後端開發,經過3個月的業餘自學成功轉型大資料工程師。
很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系。
二、大資料介紹
大資料本質也是資料,但是又有了新的特徵,包括資料來源廣、資料格式多樣化(結構化資料、非結構化資料、Excel檔案、文字檔案等)、資料量大(最少也是TB級別的、甚至可能是PB級別)、資料增長速度快等。
針對以上主要的4個特徵我們需要考慮以下問題:
資料來源廣,該如何採集彙總?對應出現了Sqoop,Cammel,Datax等工具。
資料採集之後,該如何儲存?對應出現了GFS,HDFS,TFS等分散式檔案儲存系統。
由於資料增長速度快,資料儲存就必須可以水平擴充套件。
資料儲存之後,該如何通過運算快速轉化成一致的格式,該如何快速運算出自己想要的結果?
對應的MapReduce這樣的分散式運算框架解決了這個問題;但是寫MapReduce需要Java程式碼量很大,所以出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;
普通的MapReduce處理資料只能一批一批地處理,時間延遲太長,為了實現每輸入一條資料就能得到結果,於是出現了Storm/JStorm這樣的低時延的流式計算框架;
但是如果同時需要批處理和流處理,按照如上就得搭兩個叢集,Hadoop叢集(包括HDFS+MapReduce+Yarn)和Storm叢集,不易於管理,所以出現了Spark這樣的一站式的計算框架,既可以進行批處理,又可以進行流處理(實質上是微批處理)。
而後Lambda架構,Kappa架構的出現,又提供了一種業務處理的通用架構。
為了提高工作效率,加快運速度,出現了一些輔助工具:
Ozzie,azkaban:定時任務排程的工具。
Hue,Zepplin:圖形化任務執行管理,結果檢視工具。
Scala語言:編寫Spark程式的最佳語言,當然也可以選擇用Python。
Python語言:編寫一些指令碼時會用到。
Allluxio,Kylin等:通過對儲存的資料進行預處理,加快運算速度的工具。
以上大致就把整個大資料生態裡面用到的工具所解決的問題列舉了一遍,知道了他們為什麼而出現或者說出現是為了解決什麼問題,進行學習的時候就有的放矢了。
正文
一、大資料相關工作介紹
大資料方向的工作目前主要分為三個主要方向:
大資料工程師
資料分析師
大資料科學家
其他(資料探勘等)
二、大資料工程師的技能要求
附上大資料工程師技能圖:
必須掌握的技能11條
Java高階(虛擬機器、併發)
Linux 基本操作
Hadoop(HDFS+MapReduce+Yarn )
HBase(JavaAPI操作+Phoenix )
Hive(Hql基本操作和原理理解)
Kafka
Storm/JStorm
Scala
Python
Spark (Core+sparksql+Spark streaming )
輔助小工具(Sqoop/Flume/Oozie/Hue等)
高階技能6條
機器學習演算法以及mahout庫加MLlib
R語言
Lambda 架構
Kappa架構
Kylin
Alluxio
三、學習路徑
假設每天可以抽出3個小時的有效學習時間,加上週末每天保證10個小時的有效學習時間;
3個月會有(213+4210)3=423小時的學習時間。
第一階段(基礎階段)
1)Linux學習(跟鳥哥學就ok了)-----20小時
Linux作業系統介紹與安裝。
Linux常用命令。
Linux常用軟體安裝。
Linux網路。
防火牆。
Shell程式設計等。
2)Java 高階學習(《深入理解Java虛擬機器》、《Java高併發實戰》)---30小時
掌握多執行緒。
掌握併發包下的佇列。
瞭解JMS。
掌握JVM技術。
掌握反射和動態代理。
3)Zookeeper學習
Zookeeper分散式協調服務介紹。
Zookeeper叢集的安裝部署。
Zookeeper資料結構、命令。
Zookeeper的原理以及選舉機制。
第二階段(攻堅階段)
4)Hadoop (《Hadoop 權威指南》)---80小時
HDFS
HDFS的概念和特性。
HDFS的shell操作。
HDFS的工作機制。
HDFS的Java應用開發。
MapReduce
執行WordCount示例程式。
瞭解MapReduce內部的執行機制。
MapReduce程式執行流程解析。
MapTask併發數的決定機制。
MapReduce中的combiner元件應用。
MapReduce中的序列化框架及應用。
MapReduce中的排序。
MapReduce中的自定義分割槽實現。
MapReduce的shuffle機制。
MapReduce利用資料壓縮排行優化。
MapReduce程式與YARN之間的關係。
MapReduce引數優化。
MapReduce的Java應用開發
5)Hive(《Hive開發指南》)--20小時
Hive 基本概念
Hive 應用場景。
Hive 與hadoop的關係。
Hive 與傳統資料庫對比。
Hive 的資料儲存機制。
Hive 基本操作
Hive 中的DDL操作。
在Hive 中如何實現高效的JOIN查詢。
Hive 的內建函式應用。
Hive shell的高階使用方式。
Hive 常用引數配置。
Hive 自定義函式和Transform的使用技巧。
Hive UDF/UDAF開發例項。
Hive 執行過程分析及優化策略
6)HBase(《HBase權威指南》)---20小時
hbase簡介。
habse安裝。
hbase資料模型。
hbase命令。
hbase開發。
hbase原理。
7)Scala(《快學Scala》)--20小時
Scala概述。
Scala編譯器安裝。
Scala基礎。
陣列、對映、元組、集合。
類、物件、繼承、特質。
模式匹配和樣例類。
瞭解Scala Actor併發程式設計。
理解Akka。
理解Scala高階函式。
理解Scala隱式轉換。
8)Spark (《Spark 權威指南》)---60小時
Spark core
Spark概述。
Spark叢集安裝。
執行第一個Spark案例程式(求PI)。
RDD
RDD概述。
建立RDD。
RDD程式設計API(Transformation 和 Action Operations)。
RDD的依賴關係。
RDD的快取。
DAG(有向無環圖)。
Spark SQL and DataFrame/DataSet
Spark SQL概述。
DataFrames。
DataFrame常用操作。
編寫Spark SQL查詢程式。
Spark Streaming
Spark Streaming概述。
理解DStream。
DStream相關操作(Transformations 和 Output Operations)。
Structured Streaming
其他(MLlib and GraphX )
這個部分一般工作中如果不是資料探勘,機器學習一般用不到,可以等到需要用到的時候再深入學習。
很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:458345782,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系。
相關文章
- 後臺程式設計師如何進階大資料學習?程式設計師大資料
- Airbnb資料工程師的進階指南:技術基礎AI工程師
- 大資料的系統學習:大資料學習的三個階段概述大資料
- 大資料如何學習,大資料工程師學習經驗分享大資料工程師
- 大資料工程師-學習路線-轉大資料工程師
- 想做資料科學家/工程師?從零開始系統規劃大資料學習之路資料科學工程師大資料
- 大資料工程師需要學習哪些技術?大資料工程師
- 進階指南:如何從資料分析師轉型為資料科學家?資料科學
- java程式設計師3個月業餘時間學習 大資料路徑Java程式設計師大資料
- 【React學習路線】從零進階前端核心工程師React前端工程師
- 大資料初學者怎樣學習?Java工程師怎麼轉行大資料?大資料Java工程師
- 從BAT大資料工程師那裡總結的大資料學習方法BAT大資料工程師
- 系統學習大資料需要學習哪些內容,五年大資料工程師經驗分享大資料工程師
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- Java工程師學習指南 入門篇Java工程師
- Java工程師學習指南 初級篇Java工程師
- Java工程師學習指南 中級篇Java工程師
- Java工程師學習指南 完結篇Java工程師
- Java工程師學習指南(入門篇)Java工程師
- Java工程師學習指南(初級篇)Java工程師
- Java工程師學習指南(中級篇)Java工程師
- Java工程師學習指南(完結篇)Java工程師
- 好程式設計師大資料培訓分享怎樣進行大資料入門學習程式設計師大資料
- 200911月學習計劃
- 4個月成為PHP工程師實戰指南!PHP工程師
- 好程式設計師分享Java轉行大資料該怎麼規劃學習?程式設計師Java大資料
- 大資料學習計劃【2019經典不斷更新】大資料
- 你的Android資深工程師進階之路Android工程師
- 感悟:工程師所必經的三個階段工程師
- 高階 Android 工程師的進階之路Android工程師
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 前端工程師的進階之路前端工程師
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料高階班分享10個大資料專業術語程式設計師大資料
- 好程式設計師大資料學習路線分享Hadoop階段的高可用配置程式設計師大資料Hadoop
- 好程式設計師大資料學習資料之YARN資源管理程式設計師大資料Yarn
- IT小白們進擊前端工程師的學習路線:編輯器,基礎進階學習要點,框架前端工程師框架
- 好程式設計師web前端分享H5高階工程師學習思路程式設計師Web前端H5工程師