Hadoop大資料開發學習路線
Hadoop發展到今天家族產品已經非常豐富,能夠滿足不同場景的大資料處理需求。
作為目前主流的大資料處理技術,市場上很多公司的大資料業務都是基於Hadoop開展,而且對很多場景已經具有非常成熟的解決方案。
作為開發人員掌握Hadoop及其生態內框架的開發技術,就是進入大資料領域的必經之路。
大資料詳細介紹一下,學習Hadoop開發技術的路線圖。
Hadoop本身是用java開發的,所以對java的支援性非常好,但也可以使用其他語言。
下面的技術路線側重資料探勘方向,因為Python開發效率較高所以我們使用Python來進行任務。
因為Hadoop是執行在Linux系統上的,所以還需要掌握Linux的知識。
大資料學習群:7165八一014
第一階段:Hadoop生態架構技術
1、語言基礎
Java:掌握javase知識,多理解和實踐在Java虛擬機器的記憶體管理、以及多執行緒、執行緒池、設計模式、並行化就可以,不需要深入掌握。
Linux:系統安裝(命令列介面和圖形介面)、基本命令、網路配置、Vim編輯器、程序管理、Shell指令碼、虛擬機器的選單熟悉等等。
Python:基礎語法,資料結構,函式,條件判斷,迴圈等基礎知識。
2、環境準備
這裡介紹在windows電腦搭建完全分散式,1主2從。
VMware虛擬機器、Linux系統(Centos6.5)、Hadoop安裝包,這裡準備好Hadoop完全分散式叢集環境。
3、MapReduce
MapReduce分散式離線計算框架,是Hadoop核心程式設計模型。主要適用於大批量的叢集任務,由於是批量執行,故時效性偏低。
4、HDFS1.0/2.0
Hadoop分散式檔案系統(HDFS)是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。
5、Yarn(Hadoop2.0)
前期瞭解即可,Yarn是一個資源排程平臺,主要負責給任務分配資源。Yarn是一個公共的資源排程平臺,所有滿足條件的框架都可以使用Yarn來進行資源排程。
6、Hive
Hive是一個數據倉庫,所有的資料都是儲存在HDFS上的。使用Hive主要是寫Hql,非常類似於Mysql資料庫的Sql。其實Hive在執行Hql,底層在執行的時候還是執行的MapRedce程式。
7、Spark
Spark 是專為大規模資料處理而設計的快速通用的計算引擎,其是基於記憶體的迭代式計算。Spark 保留了MapReduce 的優點,而且在時效性上有了很大提高。
8、Spark Streaming
Spark Streaming是實時處理框架,資料是一批一批的處理。
9、Spark Hive
基於Spark的快速Sql檢索。Spark作為Hive的計算引擎,將Hive的查詢作為Spark的任務提交到Spark叢集上進行計算,可以提高Hive查詢的效能。
10、Storm
Storm是一個實時計算框架,和MR的區別就是,MR是對離線的海量資料進行處理,而Storm是對實時新增的每一條資料進行處理,是一條一條的處理,可以保證資料處理的時效性。
11、Zookeeper
Zookeeper是很多大資料框架的基礎,它是叢集的管理者。監視著叢集中各個節點的狀態根據節點提交的反饋進行下一步合理操作。
最終,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者
12、Hbase
Hbase是一個Nosql 資料庫,是一個Key-Value型別的資料庫,是高可靠、面向列的、可伸縮的、分散式的資料庫,適用於非結構化的資料儲存,底層的資料儲存在HDFS上。
13、Kafka
kafka是一個訊息中介軟體,在工作中常用於實時處理的場景中,作為一箇中間緩衝層。
14、Flume
Flume是一個日誌採集工具,常見的就是採集應用產生的日誌檔案中的資料,一般有兩個流程。
一個是Flume採集資料儲存到Kafka中,方便Storm或者SparkStreaming進行實時處理。
另一個流程是Flume採集的資料儲存到HDFS上,為了後期使用hadoop或者spark進行離線處理。
第二階段:資料探勘演算法
1、中文分詞
開源分詞庫的離線和線上應用
2、自然語言處理
文字相關性演算法
3、推薦演算法
基於CB、CF,歸一法,Mahout應用。
4、分類演算法
NB、SVM
5、迴歸演算法
LR、Decision Tree
6、聚類演算法
層次聚類、Kmeans
7、神經網路與深度學習
NN、Tensorflow
以上就是學習Hadoop開發的一個詳細路線,鑑於篇幅原因只列舉和解釋了框架作用。
學習完第一階段的知識,已經可以從事大資料架構相關的工作,可以在企業中負責某些或某個的開發與維護工作。
學習完第二階段的知識,可以從事資料探勘相關的工作,這也是目前進入大資料行業含金量最高的工作。