Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,,以一種可靠,、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理,,其有許多元素構(gòu)成,,以下是其組成元素: 1.
Hadoop Common :Hadoop體系最底層的一個(gè)模塊,為Hadoop各子項(xiàng)目提供各種工具,,如:配置文件和日志操作等,。 2.
HDFS:分布式文件系統(tǒng),提供高吞吐量的應(yīng)用程序數(shù)據(jù)訪問,,對(duì)外部客戶機(jī)而言,,HDFS 就像一個(gè)傳統(tǒng)的分級(jí)文件系統(tǒng)。可以創(chuàng)建,、刪除,、移動(dòng)或重命名文件,等等,。但是
HDFS 的架構(gòu)是基于一組特定的節(jié)點(diǎn)構(gòu)建的(參見圖 1),,這是由它自身的特點(diǎn)決定的。這些節(jié)點(diǎn)包括 NameNode(僅一個(gè)),,它在 HDFS 內(nèi)部提供元數(shù)據(jù)服務(wù),;DataNode,它為 HDFS 提供存儲(chǔ)塊,。由于僅存在一個(gè) NameNode,,因此這是 HDFS 的一個(gè)缺點(diǎn)(單點(diǎn)失?。?。 存儲(chǔ)在 HDFS 中的文件被分成塊,然后將這些塊復(fù)制到多個(gè)計(jì)算機(jī)中(DataNode),。這與傳統(tǒng)的 RAID 架構(gòu)大不相同,。塊的大小(通常為 64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶機(jī)決定,。NameNode 可以控制所有文件操作,。HDFS 內(nèi)部的所有通信都基于標(biāo)準(zhǔn)的 TCP/IP 協(xié)議。 3.
MapReduce :一個(gè)分布式海量數(shù)據(jù)處理的軟件框架集計(jì)算集群,。 4.
Avro :doug cutting主持的RPC項(xiàng)目,,主要負(fù)責(zé)數(shù)據(jù)的序列化。有點(diǎn)類似Google的protobuf和Facebook的thrift,。avro用來做以后hadoop的RPC,,使hadoop的RPC模塊通信速度更快、數(shù)據(jù)結(jié)構(gòu)更緊湊,。 5.
Hive :類似CloudBase,,也是基于hadoop分布式計(jì)算平臺(tái)上的提供data warehouse的sql功能的一套軟件。使得存儲(chǔ)在hadoop里面的海量數(shù)據(jù)的匯總,,即席查詢簡單化,。hive提供了一套QL的查詢語言,以sql為基礎(chǔ),,使用起來很方便,。 6.
HBase :基于Hadoop
Distributed File System,是一個(gè)開源的,,基于列存儲(chǔ)模型的可擴(kuò)展的分布式數(shù)據(jù)庫,,支持大型表的存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)。 7.
Pig :是一個(gè)并行計(jì)算的高級(jí)的數(shù)據(jù)流語言和執(zhí)行框架 ,,SQL-like語言,,是在MapReduce上構(gòu)建的一種高級(jí)查詢語言,,把一些運(yùn)算編譯進(jìn)MapReduce模型的Map和Reduce中,并且用戶可以定義自己的功能,。 8.
ZooKeeper :Google的Chubby一個(gè)開源的實(shí)現(xiàn),。它是一個(gè)針對(duì)大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù),、名字服務(wù),、分布式同步、組服務(wù)等,。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶,。 9.
Chukwa :一個(gè)管理大型分布式系統(tǒng)的數(shù)據(jù)采集系統(tǒng) 由yahoo貢獻(xiàn),。 10.
Cassandra :無單點(diǎn)故障的可擴(kuò)展的多主數(shù)據(jù)庫 11.
Mahout :一個(gè)可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫 |
|