大資料學習入門規劃?和學習路線

金羅老師發表於2018-11-05



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

01.大資料工程師
02.資料分析師
03.大資料科學家
04.其他(資料探勘本質算是機器學習,不過和資料相關,也可以理解為大資料的一個方向吧)

一、大資料工程師的技能要求
二、大資料學習路徑
三、學習資源推薦(書籍、部落格、網站)


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





總結如下:

必須技能10條:
01.Java高階程式設計(虛擬機器、併發)
02.Linux 基本操作
03.Hadoop(此處指HDFS+MapReduce+Yarn )
04.HBase(JavaAPI操作+Phoenix )
05.Hive
06.Kafka
07.Storm
08.Scala
09.Python
10.Spark (Core+sparksql+Spark streaming )

進階技能6條:
11.機器學習演算法以及mahout庫加MLlib
12.R語言
13.Lambda 架構
14.Kappa架構
15.Kylin
16.Aluxio

二、學習路徑


大資料學習入門規劃?和學習路線


很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:199427210,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系

第一階段:
01.Linux學習(跟鳥哥學就ok了)
02.Java 高階學習(《深入理解Java虛擬機器》、《Java高併發實戰》)

第二階段:

;



03.Hadoop (董西成的書)
04.HBase(《HBase權威指南》)
05.Hive(《Hive開發指南》)
06.Scala(《快學Scala》)
07.Spark (《Spark 快速大資料分析》)
08.Python (跟著廖雪峰的部落格學習就ok了)

第三階段:
對應技能需求,到網上多蒐集一些資料就ok了,
我把最重要的事情(要學什麼告訴你了),
剩下的就是你去搜集對應的資料學習就ok了

當然如果你覺得自己看書效率太慢,你可以網上搜集一些課程,跟著課程走也OK 。這個完全根據自己情況決定,如果看書效率不高就上網課,相反的話就自己看書。

三,學習資源推薦:

01.Apache 官網
02.Stackoverflow
04.github
03.Cloudra官網
04.Databrick官網
05.過往的記憶(技術部落格)
06.CSDN,51CTO
07.至於書籍噹噹、京東一搜會有很多,其實內容都差不多                                                                                          那麼如何從零開始規劃大資料學習之路!                                                                                        大資料的領域非常廣泛,往往使想要開始學習大資料及相關技術的人望而生畏。大資料技術的種類眾多,這同樣使得初學者難以選擇從何處下手。本文將為你開始學習大資料的征程以及在大資料產業領域找到工作指明道路,提供幫助。




如何開始學習大資料?

人們想開始學習大資料的時候,最常問我的問題是,“我應該學Hadoop(hadoop是一款開源軟體,主要用於分散式儲存和計算,他由HDFS和MapReduce計算框架組成的,他們分別是Google的GFS和MapReduce的開源實現。由於hadoop的易用性和可擴充套件性,因此成為最近流行的海量資料處理框架。), 分散式計算,Kafka(Kafka是由LinkedIn開發的一個分散式基於釋出/訂閱的訊息系統),NoSQL(泛指非關係型的資料庫)還是Spark(Spark 是一種與 Hadoop 相似的開源叢集計算環境,但是兩者之間還存在一些不同之處)?”

而我通常只有一個答案:“這取決於你究竟想做什麼。”

與大資料相關的工作?



(1)大資料系統研發工程師:負責大資料系統研發工作,包括大規模非結構化資料業務模型構建、大資料儲存、資料庫架構設計以及資料庫詳細設計、最佳化資料庫構架、解決資料庫中心建設設計問題。他們還負責叢集的日常運作、系統的監測和配置、Hadoop與其他系統的整合。

(2)大資料應用開發工程師:負責搭建大資料應用平臺、開發分析應用程式。他們熟悉工具或演算法、程式設計、包裝、最佳化或者部署不同的MapReduce事務。他們以大資料技術為核心,研發各種基於大資料技術的應用程式及行業解決方案。

(3)大資料分析師:運用演算法來解決分析問題,並且從事資料探勘工作。他們最大的本事就是能夠讓資料道出真相;此外,他們還擁有某個領域的專長,幫助開發資料產品,推動資料解決方案的不斷更新。

(4)資料視覺化工程師:具備良好的溝通能力與團隊精神,責任心強,擁有優秀的解決問題的能力。他們負責在收集到的高質量資料中,利用圖形化的工具及手段的應用,一目瞭然地揭示資料中的複雜資訊,幫助企業更好的進行大資料應用開發,發現大資料背後的巨大財富。


你適合大資料什麼方向呢?

現在我們已經瞭解了行業中可供選擇的職業種類,讓我們想辦法來確定哪個領域適合你。這樣,我們才能確定你在這個行業中的位置。通常來說,基於你的教育背景和行業經驗可以進行分類。

例1:“我是一名電腦科學畢業生,不過沒有堅實的數學技巧。”

你對電腦科學或者數學有興趣,但是之前沒有相關經驗,你將被定義為一個新人。

例2:“我是一個電腦科學畢業生,目前正從事資料庫開發工作。”

你的興趣在電腦科學方向,你適合計算機工程師(資料相關工程)的角色。


大資料學習之路

核心是,大部分大資料技術都是用Java或Scala編寫的。但是別擔心,如果你不想用這些語言編寫程式碼,那麼你可以選擇Python或者R,因為大部分的大資料技術現在都支援Python和R。

因此,你可以從上述任何一種語言開始。 我建議選擇Python或Java。

接下來,你需要熟悉雲端工作。 這是因為如果你沒有在雲端處理大資料,沒有人會認真對待。 請嘗試在AWS,softlayer或任何其他雲端供應商上練習小型資料集。 他們大多數都有一個免費的層次,讓學生練習。如果你想的話,你可以暫時跳過此步驟,但請務必在進行任何面試之前在雲端工作。

接下來,你需要了解一個分散式檔案系統。最流行的分散式檔案系統就是Hadoop分散式檔案系統。在這個階段你還可以學習一些你發現與你所在領域相關的NoSQL資料庫。

那麼我們一起來看看大資料經典學習路線(及供參考)


學習路線

Linux(shell,高併發架構,lucene,solr)

Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)

機器學習(R,mahout)

Storm(Storm,kafka,redis)

Spark(scala,spark,spark core,spark sql,spark streaming,spark mllib,spark graphx)

Python(python,spark python)

雲端計算平臺(docker,kvm,openstack)

大資料學習資料分享群199427210

名詞解釋

一、Linux

lucene: 全文檢索引擎的架構

solr: 基於lucene的全文搜尋伺服器,實現了可配置、可擴充套件並對查詢效能進行了最佳化,並且提供了一個完善的功能管理介面。

二、Hadoop

hadoop common

HDFS: 分散式儲存系統,包含NameNode,DataNode。NameNode:後設資料,DataNode。DataNode:存數資料。

yarn: 可以理解為MapReduce的協調機制,本質就是Hadoop的處理分析機制,分為ResourceManager NodeManager。

MapReduce: 軟體框架,編寫程式。

Hive: 資料倉儲 可以用SQL查詢,可以執行Map/Reduce程式。用來計算趨勢或者網站日誌,不應用於實時查詢,需要很長時間返回結果。

HBase: 資料庫。非常適合用來做大資料的實時查詢。Facebook用Hbase儲存訊息資料並進行訊息實時的分析

ZooKeeper: 針對大型分散式的可靠性協調系統。Hadoop的分散式同步等靠Zookeeper實現,例如多個NameNode,active standby切換。

Sqoop: 資料庫相互轉移,關係型資料庫和HDFS相互轉移

Mahout: 可擴充套件的機器學習和資料探勘庫。用來做推薦挖掘,聚集,分類,頻繁項集挖掘。

Chukwa: 開源收集系統,監視大型分散式系統,建立在HDFS和Map/Reduce框架之上。顯示、監視、分析結果。

Ambari: 用於配置、管理和監視Hadoop叢集,基於Web,介面友好。

二、Cloudera

Cloudera Manager: 管理 監控 診斷 整合

Cloudera CDH:(Cloudera's Distribution,including Apache Hadoop) Cloudera對Hadoop做了相應的改變,發行版本稱為CDH。

Cloudera Flume: 日誌收集系統,支援在日誌系統中定製各類資料傳送方,用來收集資料。

Cloudera Impala: 對儲存在Apache Hadoop的HDFS,HBase的資料提供直接查詢互動的SQL。

Cloudera hue: web管理器,包括hue ui,hui server,hui db。hue提供所有CDH元件的shell介面的介面,可以在hue編寫mr。

三、機器學習/R

R: 用於統計分析、繪圖的語言和操作環境,目前有Hadoop-R

mahout: 提供可擴充套件的機器學習領域經典演算法的實現,包括聚類、分類、推薦過濾、頻繁子項挖掘等,且可透過Hadoop擴充套件到雲中。

四、storm

Storm: 分散式,容錯的實時流式計算系統,可以用作實時分析,線上機器學習,資訊流處理,連續性計算,分散式RPC,實時處理訊息並更新資料庫。

Kafka: 高吞吐量的分散式釋出訂閱訊息系統,可以處理消費者規模的網站中的所有動作流資料(瀏覽,搜尋等)。相對Hadoop的日誌資料和離線分析,可以實現實時處理。目前透過Hadoop的並行載入機制來統一線上和離線的訊息處理

Redis: 由c語言編寫,支援網路、可基於記憶體亦可持久化的日誌型、key-value型資料庫。

五、Spark

Scala: 一種類似java的完全物件導向的程式語言。

Spark: Spark是在Scala語言中實現的類似於Hadoop MapReduce的通用並行框架,除了Hadoop MapReduce所具有的優點,但不同於MapReduce的是job中間輸出結果可以儲存在記憶體中,從而不需要讀寫HDFS,因此Spark能更好的適用於資料探勘與機器學習等需要迭代的MapReduce演算法。可以和Hadoop檔案系統並行運作,用過Mesos的第三方叢集框架可以支援此行為。

Spark SQL:

Spark Streaming: 一種構建在Spark上的實時計算框架,擴充套件了Spark處理大資料流式資料的能力。

Spark MLlib: MLlib是Spark是常用的機器學習演算法的實現庫,目前(2014.05)支援二元分類,迴歸,聚類以及協同過濾。同時也包括一個底層的梯度下降最佳化基礎演算法。MLlib以來jblas線性代數庫,jblas本身以來遠端的Fortran程式。

Spark GraphX: GraphX是Spark中用於圖和圖平行計算的API,可以在Spark之上提供一站式資料解決方案,可以方便且高效地完成圖計算的一整套流水作業。

jblas: 一個快速的線性代數庫(JAVA)。基於BLAS與LAPACK,矩陣計算實際的行業標準,並使用先進的基礎設施等所有的計算程式的ATLAS藝術的實現,使其非常快。

Fortran: 最早出現的計算機高階程式設計語言,廣泛應用於科學和工程計算領域。

BLAS: 基礎線性代數子程式庫,擁有大量已經編寫好的關於線性代數運算的程式。

LAPACK: 著名的公開軟體,包含了求解科學與工程計算中最常見的數值線性代數問題,如求解線性方程組、線性最小二乘問題、特徵值問題和奇異值問題等。

ATLAS: BLAS線性演算法庫的最佳化版本。

Spark Python: Spark是由scala語言編寫的,但是為了推廣和相容,提供了java和python介面。

六、Python

Python: 一種物件導向的、解釋型計算機程式設計語言。

七、雲端計算平臺

Docker: 開源的應用容器引擎
kvm: (Keyboard Video Mouse)
openstack: 開源的雲端計算管理平臺專案


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

相關文章