- Hadoop大數據分析技術
- 遲殿委 陳鵬程主編
- 885字
- 2023-07-17 19:53:50
1.2.3 Hadoop生態系統和組件介紹
Hadoop生態系統組件主要包括:MapReduce、HDFS、HBase、Hive、Pig、ZooKeeper、Mahout、Flume、Sqoop,具體如圖1-4所示。

圖1-4 Hadoop生態系統組件
下面具體介紹其中的主要組件:
· MapReduce:MapReduce是使用集群的并行、分布式算法處理大數據集的可編程模型。Apache MapReduce是從Google MapReduce派生而來的,用于在大型集群中簡化數據處理。當前的Apache MapReduce版本基于Apache YARN框架構建的。YARN是“Yet-Another-Resource-Negotiator”的縮寫。YARN可以運行非MapReduce模型的應用。YARN是Apache Hadoop想要超越MapReduce數據處理能力的一種嘗試。
· HDFS:The Hadoop Distributed File System(HDFS)提供跨多個機器存儲大型文件的一種解決方案。Hadoop和HDFS都是從Google File System(GFS)中派生的。Hadoop 2.0.0之前,NameNode是HDFS集群的一個單點故障(SPOF)。利用ZooKeeper、HDFS高可用性特性解決了這個問題,提供選項來運行兩個重復的NameNodes,在同一個集群中,同一個Active/Passive配置。
· HBase:靈感來源于Google BigTable。HBase是Google BigTable的開源實現,類似Google BigTable利用GFS作為其文件存儲系統,HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MapReduce來處理BigTable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google BigTable利用Chubby作為協同服務,HBase利用ZooKeeper作為協同服務。
· Hive:Facebook開發的數據倉庫基礎設施,用于數據匯總、查詢和分析。Hive提供類似SQL的語言(不兼容SQL92)——HiveQL。
· Pig:Pig提供一個引擎在Hadoop并行執行數據流。Pig包含一種語言:Pig Latin,用來表達這些數據流。Pig Latin包括大量的傳統數據操作(join、sort、filter等),也可以讓用戶開發他們自己的函數,用來查看、處理和編寫數據。Pig在Hadoop上運行,在Hadoop分布式文件系統(HDFS)和Hadoop處理系統MapReduce中都可以使用。Pig使用MapReduce來執行所有的數據處理,編譯Pig Latin腳本,用戶可以編寫一個系列、一個或者多個的MapReduce作業,然后執行。Pig Latin看起來跟大多數編程語言都不一樣,沒有if狀態和for循環。
· ZooKeeper:ZooKeeper是Hadoop的正式子項目,它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分布式同步、組服務等。ZooKeeper的目標就是封裝好復雜且容易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。ZooKeeper是Google的Chubby一個開源的實現,是高效和可靠的協同工作系統。ZooKeeper能夠用來執行Leader選舉、配置信息維護等。在一個分布式的環境中,我們需要一個Master實例用來存儲一些配置信息,確保文件寫入的一致性等。
· Mahout:基于MapReduce的機器學習庫和數學庫。
- C程序設計簡明教程(第二版)
- Hyper-V 2016 Best Practices
- Java面向對象軟件開發
- Access 數據庫應用教程
- Ext JS Data-driven Application Design
- Java高手真經(高級編程卷):Java Web高級開發技術
- Flux Architecture
- Learning OpenStack Networking(Neutron)(Second Edition)
- OpenGL Data Visualization Cookbook
- Emgu CV Essentials
- Unity 3D腳本編程:使用C#語言開發跨平臺游戲
- Geospatial Development By Example with Python
- Canvas Cookbook
- 編程可以很簡單
- jQuery從入門到精通(微課精編版)