初始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
完全開源的。