當(dāng)我們說大數(shù)據(jù)Hadoop,究竟在說什么?
?前言
提到大數(shù)據(jù),大抵逃不過兩個問題,一個是海量的數(shù)據(jù)該如何存儲,另外一個就是那么多數(shù)據(jù)該如何進行查詢計算呢。好在這些問題前人都有了解決方案,而Hadoop就是其中的佼佼者,是目前市面上最流行的一個大數(shù)據(jù)軟件,那它包括哪些內(nèi)容呢?有什么特點呢?
Hadoop介紹
提到Hadoop,大家的理解是什么?
狹義上理解,Hadoop指的是Apache軟件基金會的一款用java語言實現(xiàn),開源的軟件,允許用戶使用簡單的編程模型實現(xiàn)跨機器集群對海量數(shù)據(jù)進行分布式計算處理。
廣義上,Hadoop指的是圍繞Hadoop打造的大數(shù)據(jù)生態(tài)圈,如下圖所示, 其中Hadoop是整個生態(tài)圈的底座、地基,構(gòu)建出整個大數(shù)據(jù)的生態(tài)系統(tǒng)。

Hadoop怎么來的?
Hadoop之父:Doug Cutting
《The Google file system》:谷歌分布式文件系統(tǒng)GFS
《MapReduce: Simplified Data Processing on Large Clusters》:谷歌分布式計算框架MapReduce
《Bigtable: A Distributed Storage System for Structured Data》:谷歌結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)
Hadoop三大核心組件
hadoop主要由3大部分組成,俗稱Hadoop三劍客:
Hadoop HDFS(分布式文件存儲系統(tǒng))
全稱分布式文件系統(tǒng),本質(zhì)是一個文件系統(tǒng),由于數(shù)據(jù)量很大,總不能將將所有數(shù)據(jù)存儲到一臺"電腦"上,哪有那么大磁盤的電腦,那么是不是可以存儲到多個不同的"電腦"上,也就是分布式的,把文件存儲在不同的節(jié)點中,主要是為了解決海量數(shù)據(jù)存儲的問題,它處在生態(tài)圈的底層與核心地位。
Hadoop MapReduce(分布式計算框架)
MapReduce作為大數(shù)據(jù)生態(tài)圈第一代分布式計算框架,主要是解決了海量數(shù)據(jù)的計算問題。
傳統(tǒng)的計算方式一般都是將數(shù)據(jù)從各個節(jié)點上加載過來,然后統(tǒng)一計算。這樣有個最大的弊端就是計算十分慢,只有一個節(jié)點工作。而MapReduce計算框架可以分布在各個節(jié)點上并行計算,最后進行歸并。
注意,MapReduce只是一個計算框架,或者說編程模型,不是一個軟件,無需部署。
Hadoop YARN(集群資源管理和任務(wù)調(diào)度平臺)
YARN是分布式通用的集群資源管理系統(tǒng)和任務(wù)調(diào)度平臺,怎么理解呢?
大數(shù)據(jù)的很多計算任務(wù),比如MapReduce任務(wù)、或者其他的Spark任務(wù)等等,他們在計算的時候需要CPU、內(nèi)存、磁盤等資源,那么多個任務(wù)進行運算的時候需要有個管理者去給他們進行資源分配、調(diào)度等,這個管理員就是YARN。
Hadoop優(yōu)點
Hadoop為什么這么流行,這和它的眾多優(yōu)點分不開。
擴容能力
Hadoop是在可用的計算機集群間分配數(shù)據(jù)并完成計算任務(wù)的,這些集群可方便靈活的方式擴展到數(shù)以千計的節(jié)點。
成本低
Hadoop集群允許通過部署普通廉價的機器組成集群來處理大數(shù)據(jù),以至于成本很低。看重的是集群整體能力。
效率高
通過并發(fā)數(shù)據(jù),Hadoop可以在節(jié)點之間動態(tài)并行的移動數(shù)據(jù),使得速度非常快。
可靠性
能自動維護數(shù)據(jù)的多份復(fù)制,并且在任務(wù)失敗后能自動地重新部署(redeploy)計算任務(wù)。所以Hadoop的按位存儲和處理數(shù)據(jù)的能力值得人們信賴。
開源
由于Hadoop開源,所以整個社區(qū)活躍度很高,很多企業(yè)都是基于Hadoop構(gòu)建他們的大數(shù)據(jù)平臺。
Hadoop架構(gòu)變遷
Hadoop也一直在迭代升級,如今已經(jīng)到了3.0時代了,那么每個大版本有什么差別呢?
1.Hadoop 1.0時代

Hadoop1.0時代只有HDFS?(分布式文件存儲)和MapReduce(資源管理和分布式數(shù)據(jù)處理)兩部分。
2.Hadoop 2.0時代

Hadoop2.0時代引入了YARN作為統(tǒng)一的集群資源管理和任務(wù)調(diào)度平臺,它不僅可以提交自己的任務(wù),還可以提交其他的一些任務(wù),是一個很大的變革,也是保證Hadoop的統(tǒng)治地位的一大原因。
3.Hadoop 3.0時代
Hadoop 3.0架構(gòu)組件和Hadoop 2.0類似, 但是3.0著重于性能優(yōu)化。
Hadoop初體驗
好了,上面基本講清楚Hadoop的基本內(nèi)容,那Hadoop究竟長啥樣呢?至于安裝這邊就不介紹了。
Hadoop分布式文件系統(tǒng)
我們可以在web上看到hadoop的文件系統(tǒng),其實和我們的目錄沒啥差別。

YARN集群資源管理和任務(wù)調(diào)度平臺
我們也可以在瀏覽器輸入指定的地址看到之前都提交過上面樣的計算任務(wù)。

至于MapReduce是看不到的,它只是一個計算框架,提交到這個Yarn上。
總結(jié)
本文講解了大數(shù)據(jù)開發(fā)中最流行的軟件Hadoop, 它主要分為3部分,管理文件存儲的hdfs, 統(tǒng)一管理資源和任務(wù)的調(diào)度平臺Yarn,以及提供了一種計算引擎MapReduce, 基于這三個"磐石",可以構(gòu)建出整個大數(shù)據(jù)生態(tài)。



























