java轉大資料的學習路線

大資料學習發表於2019-04-29

一、大資料相關的工作介紹

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

三、大資料學習規劃


大資料介紹


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

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

針對以上主要的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小時


enter image description here


Spark core


Spark概述。

Spark叢集安裝。

執行第一個Spark案例程式(求PI)。

RDD


enter image description here


RDD概述。

建立RDD。

RDD程式設計API(Transformation 和 Action Operations)。

RDD的依賴關係

RDD的快取

DAG(有向無環圖)

Spark SQL and DataFrame/DataSet


enter image description here


Spark SQL概述。

DataFrames。

DataFrame常用操作。

編寫Spark SQL查詢程式。

Spark Streaming


enter image description here


enter image description here


park Streaming概述。

理解DStream。

DStream相關操作(Transformations 和 Output Operations)。

Structured Streaming


其他(MLlib and GraphX )


這個部分一般工作中如果不是資料探勘,機器學習一般用不到,可以等到需要用到的時候再深入學習。


9)Python

10)自己用虛擬機器搭建一個叢集,把所有工具都裝上,自己開發一個小demo —30小時


可以自己用VMware搭建4臺虛擬機器,然後安裝以上軟體,搭建一個小叢集(本人親測,I7,64位,16G記憶體,完全可以執行起來)


大資料的未來前景可期,入行的人也非常的多,而如何快速的完成轉型,如何快速的進入大資料領域,就需要轉型者、小白去進行深刻的思考。


對於小白學大資料需要注意的點有很多,但無論如何,既然你選擇了進入大資料行業,那麼便只顧風雨兼程。正所謂不忘初心、方得始終,學習大資料你最需要的還是一顆持之以恆的心。



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

相關文章