Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架袁波,以一種可靠、高效辰狡、可伸縮的方式進(jìn)行數(shù)據(jù)處理锋叨,其有許多元素構(gòu)成,以下是其組成元素:
1.Hadoop Common:Hadoop體系最底層的一個模塊宛篇,為Hadoop各子項目提供各種工具娃磺,如:配置文件和日志操作等。
2.HDFS:分布式文件系統(tǒng)叫倍,提供高吞吐量的應(yīng)用程序數(shù)據(jù)訪問偷卧,對外部客戶機(jī)而言,HDFS?就像一個傳統(tǒng)的分級文件系統(tǒng)吆倦√睿可以創(chuàng)建、刪除蚕泽、移動或重命名文件晌梨,等等桥嗤。但是HDFS 的架構(gòu)是基于一組特定的節(jié)點構(gòu)建的(參見圖 1),這是由它自身的特點決定的仔蝌。這些節(jié)點包括 NameNode(僅一個)泛领,它在 HDFS 內(nèi)部提供元數(shù)據(jù)服務(wù);DataNode敛惊,它為 HDFS 提供存儲塊渊鞋。由于僅存在一個 NameNode,因此這是 HDFS 的一個缺點(單點失斍萍贰)锡宋。
存儲在 HDFS?中的文件被分成塊,然后將這些塊復(fù)制到多個計算機(jī)中(DataNode)特恬。這與傳統(tǒng)的 RAID 架構(gòu)大不相同执俩。塊的大小(通常為 64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時由客戶機(jī)決定鸵鸥。NameNode 可以控制所有文件操作奠滑。HDFS 內(nèi)部的所有通信都基于標(biāo)準(zhǔn)的 TCP/IP 協(xié)議。
3.MapReduce:一個分布式海量數(shù)據(jù)處理的軟件框架集計算集群妒穴。
4.Avro?:doug cutting主持的RPC項目宋税,主要負(fù)責(zé)數(shù)據(jù)的序列化。有點類似Google的protobuf和Facebook的thrift讼油。avro用來做以后hadoop的RPC杰赛,使hadoop的RPC模塊通信速度更快、數(shù)據(jù)結(jié)構(gòu)更緊湊矮台。
5.Hive?:類似CloudBase乏屯,也是基于hadoop分布式計算平臺上的提供data warehouse的sql功能的一套軟件。使得存儲在hadoop里面的海量數(shù)據(jù)的匯總瘦赫,即席查詢簡單化辰晕。hive提供了一套QL的查詢語言,以sql為基礎(chǔ)确虱,使用起來很方便含友。
6.HBase?:基于HadoopDistributed File System,是一個開源的校辩,基于列存儲模型的可擴(kuò)展的分布式數(shù)據(jù)庫窘问,支持大型表的存儲結(jié)構(gòu)化數(shù)據(jù)。
7.Pig?:是一個并行計算的高級的數(shù)據(jù)流語言和執(zhí)行框架 宜咒,SQL-like語言惠赫,是在MapReduce上構(gòu)建的一種高級查詢語言,把一些運(yùn)算編譯進(jìn)MapReduce模型的Map和Reduce中故黑,并且用戶可以定義自己的功能儿咱。
8.ZooKeeper:Google的Chubby一個開源的實現(xiàn)庭砍。它是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)概疆、名字服務(wù)逗威、分布式同步、組服務(wù)等岔冀。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯的關(guān)鍵服務(wù),將簡單易用的接口和性能高效概耻、功能穩(wěn)定的系統(tǒng)提供給用戶使套。
9.Chukwa?:一個管理大型分布式系統(tǒng)的數(shù)據(jù)采集系統(tǒng) 由yahoo貢獻(xiàn)。
10.Cassandra:無單點故障的可擴(kuò)展的多主數(shù)據(jù)庫
11.Mahout?:一個可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 長按識別關(guān)注我們鞠柄,每天都有技術(shù)和精彩內(nèi)容分享哦侦高!~