現在Apache Hadoop已成爲大數據行業發展背後的驅動力。Hive和Pig等技術也常常被提到,可是他們都有什麼功能,爲何會須要奇怪的名字(如Oozie,ZooKeeper、Flume)。 算法
Hadoop帶來了廉價的處理大數據(大數據的數據容量一般是10-100GB或更多,同時數據種類多種多樣,包括結構化、非結構化等)的能力。但這與以前有什麼不一樣? 數據庫
現 今企業數據倉庫和關係型數據庫擅長處理結構化數據,而且能夠存儲大量的數據。但成本上有些昂貴。這種對數據的要求限制了可處理的數據種類,同時這種慣性所 帶的缺點還影響到數據倉庫在面對海量異構數據時對於敏捷的探索。這一般意味着有價值的數據源在組織內從未被挖掘。這就是Hadoop與傳統數據處理方式最 大的不一樣。 編程
本文將介紹Hadoop系統的組成部分,並解釋各個組成部分的功能。 架構
Hadoop生態環境包含十多種組件或子項目,但在安裝、配置和集羣規模的部署以及管理等方面都面臨不小的挑戰。 框架
Hadoop主要組件包含:Hadoop:Java編寫的軟件框架,以支持數據密集型分佈式應用 機器學習
ZooKeeper:高可靠性分佈式協調系統 分佈式
MapReduce:針對大數據的靈活的並行數據處理框架 工具
HDFS:Hadoop分佈式文件系統 oop
Oozie:負責MapReduce做業調度 學習
HBase:Key-value數據庫
Hive:構建在MapRudece之上的數據倉庫軟件包
Pig:Pig是架構在Hadoop之上的高級數據處理層。Pig Latin語言爲編程人員提供了更直觀的定製數據流的方法。
一般狀況下,Hadoop應用於分佈式環境。就像以前Linux的情況同樣,廠商集成和測試Apache Hadoop生態系統的組件,並添加本身的工具和管理功能。