(碩士讀了一年多,除了論文就是論文,甚是枯燥,過些日子打算去找工作,所以借助此平臺(tái)給自己一個(gè)復(fù)習(xí)的過程并把自己復(fù)習(xí)過程中做的筆記分享給大家。此回顧首先從Hadoop開始,接下來有可能會(huì)加入Spark,算法,機(jī)器學(xué)習(xí),設(shè)計(jì)模式等。)
復(fù)習(xí)——HADOOP簡(jiǎn)介
一、大數(shù)據(jù)的基本特性:4V
1、Volume: M->G->T->P->E->Z->(容量)
2、Varity:文本、圖片、視頻音頻…
3、Veracity:精確
4、Velocity:速度要求快、數(shù)據(jù)輸入輸出的速度
二、什么是Hadoop
1、Hadoop是一種開源的可靠的,可擴(kuò)展的,大數(shù)據(jù)分布式計(jì)算框架。支持從一臺(tái)到數(shù)以千臺(tái)的機(jī)器,并且在每一臺(tái)上面都支持本地計(jì)算和存儲(chǔ)。支持很多操作系統(tǒng)版本,但是一般企業(yè)都會(huì)選擇Linux,很少有企業(yè)會(huì)選擇windows來做大數(shù)據(jù)。所以學(xué)習(xí)hadoop當(dāng)然要掌握linux的相關(guān)技能。
2、包括
HDFS:Hadoop的分布式文件系統(tǒng)
MapReduce:Hadoop的離線并行計(jì)算模型
YARN:一種任務(wù)調(diào)度和資源管理框架(2.0版本以后)
3、Google三篇論文
Hadoop的設(shè)計(jì)思想來源于谷歌的三大論文,GFS、MapReduce、BigTable。分別對(duì)應(yīng)hadoop的HDFS、MapReduce、Hbase。
三、分布式文件系統(tǒng)
HDFS中主要包含兩個(gè)節(jié)點(diǎn),namenode和datanode。在2.0版本以前存在secondarynamenode,但是在使用zookeeper協(xié)助HDFS做HA之后就不再使用了。
Namenode:存儲(chǔ)文件的元數(shù)據(jù)信息(fsimage)和對(duì)文件操作信息(edits)
Datanode:數(shù)據(jù)存儲(chǔ);文件存儲(chǔ)以塊的形式,默認(rèn)128MB,文件不足128MB不會(huì)占滿整個(gè)塊;默認(rèn)情況存儲(chǔ)副本數(shù)為三個(gè),分別為機(jī)器本、同機(jī)架、不同機(jī)架;定期向namenode發(fā)送報(bào)告。
四、YARN架構(gòu)
YARN是一種資源管理與應(yīng)用調(diào)度框架,在hadoop2.0以后被提出的,大數(shù)據(jù)的許多框架都能和其集成。
Resourcemanager:負(fù)責(zé)整個(gè)系統(tǒng)的資源管理,資源分配,協(xié)調(diào)
Nodemanager:負(fù)責(zé)單個(gè)任務(wù)管理,任務(wù)的本地運(yùn)行。(通常每個(gè)datanode配備一個(gè)nodemanager以保證任務(wù)本地執(zhí)行)
五、MapReduce
MapReduce是一種大數(shù)據(jù)并行計(jì)算模型,主要包括Map端、shuffle過程和Reduce端。其中map和reduce的輸入輸出都是以鍵值對(duì)的方式進(jìn)行的。shuffle則包括分區(qū),分組,排序等過程。最為經(jīng)典的就是wordcount程序,號(hào)稱大數(shù)據(jù)的hello world。
由于mapreduce只能處理離線數(shù)據(jù),并且速度較為緩慢,所以現(xiàn)在此部分漸漸被spark所替換。