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