Hadoop概述
初始Hadoop
hadoop概述
檢視官網,瞭解hadoop是一個開源的可靠的可擴充套件的分散式框架,它有很多的元件,比如Common,HDFS
YARN,MapReduce.
- Common:支援其他Hadoop模組的常用實用程式
- HDFS:是一個分散式檔案系統,提供對應用程式資料的高吞吐量訪問
- YARN:是一個作業排程和叢集資源管理的框架
- MapReduce:基於YARN的系統,用於並行處理大型資料集
hadoop核心元件
分散式檔案系統HDFS
HDFS特點
- 擴充套件性高,可以再叢集中加入其他的單個伺服器,來提高整個叢集的效能
- 容錯性高
- 海量的數量儲存
- 將檔案切分成指定大小的資料塊並以多副本的儲存在多個機器上(一般預設是128M的資料塊)
-
資料切分,多副本,容錯等操作對使用者是透明的,也就是說我們不需要關心這些,我們操作物件還是檔案,而不是資料塊
分散式資源排程YARN
Yet Another Resource Negotiator - 負責整個叢集資源的管理和排程
-
YARN特點:擴充套件性高,容錯性高,多框架資源統一排程
圖可以看出最下面是HDFS分散式檔案系統,中間是YARN分散式資源排程系統,看出可以在YARN上跑很多的程式,比如pig,hive,hbase,spark等等。
分散式計算框架MapReduce
- 可擴充套件性,容錯性,海量數量離線處理(因為離線處理,就說明了延遲性,不能實時處理)
下圖:
- input
假設輸入的資料為上面幾個單詞 - spliting
三臺機器分別取出一部分 - mapping
開始對映值,每個單詞出現的個數 - shuffling
重新開始洗牌,把相同的單詞放在同一個機器中 - reducing
開始合併資料 - 最終的結果
hadoop優勢
- 高可靠性
- 對於資料儲存來說,資料塊多副本。可以防止檔案的丟失,提高容錯性
- 對於資料計算來說,重新排程作業計算。即使發生了異常,自己也可以重新開始作業排程
- 高擴充套件性
- 對於儲存/計算資源不夠時,可以橫向的線性擴充套件機器
- 一個叢集中可以包含數以千計的節點
- 其他方面
- 儲存在廉價的機器上,可以減低成本,在一般的PC就可以
-
成熟的生態圈
hadoop發展史
網上查infoq.com
hadoop的生態系統
俠義的hadoop:是一個適合大資料分散式儲存(HDFS),分散式計算(MapReduce)和資源排程(YARN)的平臺。
廣義的Hapdoop:指的是hadoop生態系統,hadoop生態系統是一個很龐大的概念,hadoop是其中最重要最基礎的一個部分,生態系統中每一個子系統只能解決某一個特定的問題域。

每個元件都有自己的應用場景
hadoop生態系統的提點
- 開源,社群活躍
- 囊括了大資料處理的方方面面
- 成熟的生態圈
hadoop發行版本的選擇
- Apache Hadoop
存在著很多元件的jar包,各個元件有衝突 - CDH: Cloudera Distributed Hadoop
適用於新手,基本不存在jar包衝突,但不是完全開源 - HDP: Hortonworks Data Platform
完全開源的。