Hadoop發(fā)展到今天家族產(chǎn)品已經(jīng)非常豐富,能夠滿足不同場景的大數(shù)據(jù)處理需求脸哀。
作為目前主流的大數(shù)據(jù)處理技術(shù)凰狞,市場上很多公司的大數(shù)據(jù)業(yè)務(wù)都是基于Hadoop開展,而且對很多場景已經(jīng)具有非常成熟的解決方案菲饼。
作為開發(fā)人員掌握Hadoop及其生態(tài)內(nèi)框架的開發(fā)技術(shù),就是進(jìn)入大數(shù)據(jù)領(lǐng)域的必經(jīng)之路列赎。
下面詳細(xì)介紹一下宏悦,學(xué)習(xí)Hadoop開發(fā)技術(shù)的路線圖。
Hadoop本身是用java開發(fā)的粥谬,所以對java的支持性非常好肛根,但也可以使用其他語言。
下面的技術(shù)路線側(cè)重數(shù)據(jù)挖掘方向漏策,因為Python開發(fā)效率較高所以我們使用Python來進(jìn)行任務(wù)。
因為Hadoop是運行在Linux系統(tǒng)上的臼氨,所以還需要掌握Linux的知識掺喻。
第一階段:Hadoop生態(tài)架構(gòu)技術(shù)
1、語言基礎(chǔ)
Java:掌握javase知識,多理解和實踐在Java虛擬機(jī)的內(nèi)存管理感耙、以及多線程褂乍、線程池、設(shè)計模式即硼、并行化就可以逃片,不需要深入掌握。
Linux:系統(tǒng)安裝(命令行界面和圖形界面)只酥、基本命令褥实、網(wǎng)絡(luò)配置、Vim編輯器裂允、進(jìn)程管理损离、Shell腳本、虛擬機(jī)的菜單熟悉等等绝编。
Python:基礎(chǔ)語法僻澎,數(shù)據(jù)結(jié)構(gòu),函數(shù)十饥,條件判斷窟勃,循環(huán)等基礎(chǔ)知識。
2逗堵、環(huán)境準(zhǔn)備
這里介紹在windows電腦搭建完全分布式秉氧,1主2從。
VMware虛擬機(jī)砸捏、Linux系統(tǒng)(Centos6.5)谬运、Hadoop安裝包,這里準(zhǔn)備好Hadoop完全分布式集群環(huán)境垦藏。
3梆暖、MapReduce
MapReduce分布式離線計算框架,是Hadoop核心編程模型掂骏。主要適用于大批量的集群任務(wù)轰驳,由于是批量執(zhí)行,故時效性偏低弟灼。
4级解、HDFS1.0/2.0
Hadoop分布式文件系統(tǒng)(HDFS)是一個高度容錯性的系統(tǒng),適合部署在廉價的機(jī)器上田绑。HDFS能提供高吞吐量的數(shù)據(jù)訪問勤哗,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。
5掩驱、Yarn(Hadoop2.0)
前期了解即可芒划,Yarn是一個資源調(diào)度平臺冬竟,主要負(fù)責(zé)給任務(wù)分配資源。Yarn是一個公共的資源調(diào)度平臺民逼,所有滿足條件的框架都可以使用Yarn來進(jìn)行資源調(diào)度泵殴。
6、Hive
Hive是一個數(shù)據(jù)倉庫拼苍,所有的數(shù)據(jù)都是存儲在HDFS上的笑诅。使用Hive主要是寫Hql,非常類似于Mysql數(shù)據(jù)庫的Sql疮鲫。其實Hive在執(zhí)行Hql吆你,底層在執(zhí)行的時候還是執(zhí)行的MapRedce程序。
7棚点、Spark
Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎早处,其是基于內(nèi)存的迭代式計算。Spark 保留了MapReduce 的優(yōu)點瘫析,而且在時效性上有了很大提高砌梆。
8、Spark Streaming
Spark Streaming是實時處理框架贬循,數(shù)據(jù)是一批一批的處理咸包。
9、Spark Hive
基于Spark的快速Sql檢索杖虾。Spark作為Hive的計算引擎烂瘫,將Hive的查詢作為Spark的任務(wù)提交到Spark集群上進(jìn)行計算,可以提高Hive查詢的性能奇适。
10坟比、Storm
Storm是一個實時計算框架,和MR的區(qū)別就是嚷往,MR是對離線的海量數(shù)據(jù)進(jìn)行處理葛账,而Storm是對實時新增的每一條數(shù)據(jù)進(jìn)行處理,是一條一條的處理皮仁,可以保證數(shù)據(jù)處理的時效性籍琳。
11、Zookeeper
Zookeeper是很多大數(shù)據(jù)框架的基礎(chǔ)贷祈,它是集群的管理者趋急。監(jiān)視著集群中各個節(jié)點的狀態(tài)根據(jù)節(jié)點提交的反饋進(jìn)行下一步合理操作。
最終势誊,將簡單易用的接口和性能高效呜达、功能穩(wěn)定的系統(tǒng)提供給用戶
12、Hbase
Hbase是一個Nosql 數(shù)據(jù)庫粟耻,是一個Key-Value類型的數(shù)據(jù)庫闻丑,是高可靠漩怎、面向列的勋颖、可伸縮的嗦嗡、分布式的數(shù)據(jù)庫,適用于非結(jié)構(gòu)化的數(shù)據(jù)存儲饭玲,底層的數(shù)據(jù)存儲在HDFS上侥祭。
13、Kafka
kafka是一個消息中間件茄厘,在工作中常用于實時處理的場景中矮冬,作為一個中間緩沖層。
14次哈、Flume
Flume是一個日志采集工具胎署,常見的就是采集應(yīng)用產(chǎn)生的日志文件中的數(shù)據(jù),一般有兩個流程窑滞。
一個是Flume采集數(shù)據(jù)存儲到Kafka中琼牧,方便Storm或者SparkStreaming進(jìn)行實時處理。
另一個流程是Flume采集的數(shù)據(jù)存儲到HDFS上哀卫,為了后期使用hadoop或者spark進(jìn)行離線處理巨坊。
第二階段:數(shù)據(jù)挖掘算法
1、中文分詞
開源分詞庫的離線和在線應(yīng)用
2此改、自然語言處理
文本相關(guān)性算法
3趾撵、推薦算法
基于CB、CF共啃,歸一法占调,Mahout應(yīng)用。
4移剪、分類算法
NB究珊、SVM
5、回歸算法
LR挂滓、Decision Tree
6苦银、聚類算法
層次聚類、Kmeans
7赶站、神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)
NN幔虏、Tensorflow
以上就是學(xué)習(xí)Hadoop開發(fā)的一個詳細(xì)路線,鑒于篇幅原因只列舉和解釋了框架作用
學(xué)習(xí)完第一階段的知識贝椿,已經(jīng)可以從事大數(shù)據(jù)架構(gòu)相關(guān)的工作想括,可以在企業(yè)中負(fù)責(zé)某些或某個的開發(fā)與維護(hù)工作。
學(xué)習(xí)完第二階段的知識烙博,可以從事數(shù)據(jù)挖掘相關(guān)的工作瑟蜈,這也是目前進(jìn)入大數(shù)據(jù)行業(yè)含金量最高的工作烟逊。
喜歡加關(guān)注??,一起進(jìn)步铺根!