官术网_书友最值得收藏!

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的機器學習庫和數學庫。

主站蜘蛛池模板: 耒阳市| 新竹县| 西乌珠穆沁旗| 九江市| 库伦旗| 昭觉县| 霞浦县| 阜阳市| 轮台县| 上饶市| 石河子市| 云林县| 汾西县| 潼关县| 徐州市| 崇义县| 黔西| 乡城县| 太康县| 永济市| 临沧市| 武强县| 紫金县| 宁夏| 永泰县| 灌云县| 团风县| 司法| 虹口区| 汝城县| 江陵县| 敦煌市| 法库县| 呼伦贝尔市| 崇信县| 上蔡县| 剑阁县| 宾川县| 淳化县| 罗城| 阳江市|