更新時間:2021-03-11 來源:黑馬程序員 瀏覽量:
隨著Hadoop的不斷發(fā)展,Hadoop生態(tài)體系越來越完善,現如今已經發(fā)展成一個龐大的生態(tài)體系,如圖1所示。
圖1 Hadoop生態(tài)圈
從圖1中可以看出,Hadoop生態(tài)體系包含了很多子系統,下面介紹一些常見的子系統,具體如下:
1. HDFS分布式文件系統
HDFS是Hadoop分布式文件系統,它是Hadoop生態(tài)系統中的核心項目之一,是分布式計算中數據存儲管理基礎。HDFS具有高容錯性的數據備份機制,它能檢測和應對硬件故障,并在低成本的通用硬件上運行。另外,HDFS具備流式的數據訪問特點,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。
2. MapReduce分布式計算框架
MapReduce是一種計算模型,用于大規(guī)模數據集(大于1TB)的并行運算?!癕ap”對數據集上的獨立元素進行指定的操作,生成鍵值對形式中間結果;“Reduce”則對中間結果中相同“鍵”的所有“值”進行規(guī)約,以得到最終結果。MapReduce這種“分而治之”的思想,極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。
3. Yarn資源管理框架
Yarn(Yet Another Resource Negotiator)是Hadoop 2.0中的資源管理器,它可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。
4. Sqoop數據遷移工具
Sqoop是一款開源的數據導入導出工具,主要用于在Hadoop與傳統的數據庫間進行數據的轉換,它可以將一個關系型數據庫(例如,MySQL、Oracle等)中的數據導入到Hadoop的HDFS中,也可以將HDFS的數據導出到關系型數據庫中,使數據遷移變得非常方便。
5. Mahout數據挖掘算法庫
Mahout是Apache旗下的一個開源項目,它提供了一些可擴展的機器學習領域經典算法的實現,旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應用程序。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴展到云中。
6. Hbase分布式存儲系統
HBase是Google Bigtable克隆版,它是一個針對結構化數據的可伸縮、高可靠、高性能、分布式和面向列的動態(tài)模式數據庫。和傳統關系數據庫不同,HBase采用了BigTable的數據模型:增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對大規(guī)模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用MapReduce來處理,它將數據存儲和并行計算完美地結合在一起。
7. Zookeeper分布式協作服務
Zookeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和HBase的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等用于構建分布式應用,減少分布式應用程序所承擔的協調任務。
8. Hive基于Hadoop的數據倉庫
Hive是基于Hadoop的一個分布式數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,將SQL語句轉換為MapReduce任務進行運行。其優(yōu)點是操作簡單,降低學習成本,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發(fā)專門的MapReduce應用,十分適合數據倉庫的統計分析。
9. Flume日志收集工具
Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支持在日志系統中定制各類數據發(fā)送方,用于收集數據;同時,Flume提供對數據進行簡單處理,并寫到各種數據接受方(可定制)的能力。
猜你喜歡: