您好,登錄后才能下訂單哦!
Hadoop生態(tài)系統(tǒng)
一、摘要
經(jīng)過(guò)幾年的快速發(fā)展,Hadoop現(xiàn)在已經(jīng)發(fā)展成為包含多個(gè)相關(guān)項(xiàng)目的軟件生態(tài)系統(tǒng)。狹義的Hadoop核心只包括Hadoop Common、Hadoop HDFS和Hadoop MapReduce三個(gè)子項(xiàng)目,但是和Hadoop核心密切相關(guān)的還包括Avro、Zookeeper、Hive、Pig和Hbase等等項(xiàng)目,構(gòu)建在這些項(xiàng)目之上的,面向具體領(lǐng)域、應(yīng)用的Mahout、X-Rime、Crossbow和Ivory等項(xiàng)目,以及Chukwa、Flume、Sqoop、Oozie和Karmasphere等數(shù)據(jù)交換、工作流和開發(fā)環(huán)境這樣的外圍支撐系統(tǒng)。他們提供互補(bǔ)性的服務(wù),共同提供了一個(gè)海量數(shù)據(jù)處理的軟件生態(tài)系統(tǒng)。
二、詳解
1、Hadoop Common
從Hadoop0.20版本開始,原來(lái)Hadoop項(xiàng)目的Core部分更名為Hadoop Common。Common為Hadoop的其他項(xiàng)目提供一些常用工具,主要包括系統(tǒng)配置工具Configuration、遠(yuǎn)程過(guò)程調(diào)用RPC、序列化機(jī)制和Hadoop抽象文件系統(tǒng)FileSystem等。它們?yōu)樵谕ㄓ糜布洗罱ㄔ骗h(huán)境提供基本的服務(wù),并為運(yùn)行在該平臺(tái)的軟件開發(fā)提供了所需的API。
2、HDFS
HDFS,Hadoop分布式文件系統(tǒng),是Hadoop體系中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ)。它是一個(gè)高度容錯(cuò)的系統(tǒng),能檢測(cè)和應(yīng)對(duì)硬件故障,用于在低成本的通用硬件上運(yùn)行。HDFS簡(jiǎn)化了文件的一致性模型,通過(guò)流式數(shù)據(jù)訪問(wèn),提供高吞吐量應(yīng)用程序數(shù)據(jù)訪問(wèn)功能,適合帶有大型數(shù)據(jù)集的應(yīng)用程序。
3、MapReduce
MapReduce是一種計(jì)算模型,泳衣進(jìn)行大數(shù)據(jù)量的計(jì)算。Hadoop的MapReduce實(shí)現(xiàn),和Common、HDFS一起,構(gòu)成了Hadoop發(fā)展初期的三個(gè)組件。MapReduce將應(yīng)用劃分成Map和Reduce兩個(gè)步驟,其中Map對(duì)數(shù)據(jù)集上的獨(dú)立元素進(jìn)行指定的操作,生成鍵值對(duì)形式中間結(jié)果。Reduce則對(duì)中間結(jié)果中相同鍵的所有值進(jìn)行規(guī)約,已得到最終結(jié)果。MapReduce這樣的功能劃分,非常適合在大量計(jì)算機(jī)的分布式并行環(huán)境里進(jìn)行數(shù)據(jù)處理。
4、Avro
Avro是Doug Cuttiing牽頭開發(fā),是一個(gè)數(shù)據(jù)序列化系統(tǒng)。類似于其它序列化機(jī)制,Avro可以將數(shù)據(jù)結(jié)構(gòu)或者對(duì)象轉(zhuǎn)換成便于存儲(chǔ)和傳輸?shù)母袷?,其設(shè)計(jì)目標(biāo)是用于支持?jǐn)?shù)據(jù)密集型應(yīng)用,適合大規(guī)模數(shù)據(jù)的存儲(chǔ)與交換。Avro提供了豐富的數(shù)據(jù)結(jié)構(gòu)類型、快速可壓縮的二進(jìn)制數(shù)據(jù)格式、存儲(chǔ)吃就行數(shù)據(jù)的文件集、遠(yuǎn)程調(diào)用RPC和簡(jiǎn)單動(dòng)態(tài)語(yǔ)言繼承等功能。
5、Zookeeper
在分布式系統(tǒng)中如何就某個(gè)值(決議)達(dá)成一致,是一個(gè)十分重要的基礎(chǔ)問(wèn)題。Zookeeper作為一個(gè)分布式的服務(wù)框架,解決了分布式計(jì)算中的一致性問(wèn)題。在此基礎(chǔ)上,Zookeeper可用于處理分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問(wèn)題,如統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。Zookeeper常作為其他Hadoop相關(guān)項(xiàng)目的主要組件,發(fā)揮著越來(lái)越重要的作用。
6、Hive
Hive是Hadoop中的一個(gè)重要子項(xiàng)目,最早由Facebook設(shè)計(jì),是建立在Hadoop基礎(chǔ)上的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu),它為數(shù)據(jù)倉(cāng)庫(kù)的管理提供了許多功能,包括:數(shù)據(jù)ETL(抽取、轉(zhuǎn)換和加載)工具、數(shù)據(jù)存儲(chǔ)掛歷和大型數(shù)據(jù)集的查詢和分析能力。
Hive提供的一種結(jié)構(gòu)化數(shù)據(jù)的機(jī)制,定義了類似于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中的類SQL語(yǔ)言:HiveQL,通過(guò)查詢語(yǔ)言,數(shù)據(jù)分析人員可以很方便地運(yùn)行數(shù)據(jù)分析業(yè)務(wù)。
7、HBase
Google發(fā)表了BigTable系統(tǒng)論文后,開源社區(qū)就開始在HDFS上構(gòu)建相應(yīng)的實(shí)現(xiàn)HBase。Hbase是一個(gè)針對(duì)結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動(dòng)態(tài)模式數(shù)據(jù)庫(kù)。和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)不同,HBase采用了BigTable的數(shù)據(jù)模型:增強(qiáng)的稀疏排序映射表(Key/Value),其中,鍵由行關(guān)鍵字、列關(guān)鍵字和時(shí)間戳構(gòu)成。HBase提供了對(duì)大規(guī)模數(shù)據(jù)的隨機(jī)、實(shí)時(shí)讀寫訪問(wèn),同時(shí),HBase中保存的數(shù)據(jù)可以使用MapReduce來(lái)處理,它將數(shù)據(jù)存儲(chǔ)和并行計(jì)算完美結(jié)合到一起。
8、Pig
Pig運(yùn)行在Hadoop上,是對(duì)大型數(shù)據(jù)集進(jìn)行分析和評(píng)估的平臺(tái)。它簡(jiǎn)化了使用Hadoop進(jìn)行數(shù)據(jù)分析的要求,提供了一個(gè)高層次的、面向領(lǐng)域的抽象語(yǔ)言:Pig Latin。通過(guò)PigLatin,數(shù)據(jù)工程師可以將復(fù)雜且相互關(guān)聯(lián)的數(shù)據(jù)分析任務(wù)編碼為Pig操作上的數(shù)據(jù)流腳本,通過(guò)將該腳本轉(zhuǎn)換為MapReduce任務(wù)鏈,在hadoop上執(zhí)行。和Hive一樣,Pig降低了對(duì)大型數(shù)據(jù)集進(jìn)行分析和評(píng)估的門檻。
9、Mahout
Mahout起源于2008年,最初是Apache Lucene的子項(xiàng)目,它在極短的時(shí)間內(nèi)取得了長(zhǎng)足的發(fā)展,現(xiàn)在是Apache的頂級(jí)項(xiàng)目。Mahout的主要目標(biāo)是創(chuàng)建一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout現(xiàn)在已經(jīng)包含了聚類、分類、推薦引擎(協(xié)同過(guò)濾)和頻繁集挖掘等廣泛使用的數(shù)據(jù)挖掘方法。除了算法,Mahout還包含數(shù)據(jù)的輸入/輸出工具、與其他存儲(chǔ)系統(tǒng)繼承等數(shù)據(jù)挖掘支撐架構(gòu)。
10、X-RIME
X-RIME是一個(gè)開源的社會(huì)網(wǎng)絡(luò)分析工具,它提供了一套基于Hadoop的大規(guī)模社會(huì)網(wǎng)絡(luò)/復(fù)雜網(wǎng)絡(luò)分析工具包。X-RIME在MapReduce的框架上對(duì)十幾種社會(huì)網(wǎng)絡(luò)分析算法進(jìn)行了并行化與分布式化,從而實(shí)現(xiàn)了對(duì)互聯(lián)網(wǎng)級(jí)大規(guī)模社會(huì)網(wǎng)絡(luò)/復(fù)雜網(wǎng)絡(luò)的分析。它包括HDFS存儲(chǔ)系統(tǒng)上的一套適合大規(guī)模社會(huì)網(wǎng)絡(luò)分析的數(shù)據(jù)模型、基于MapReduce實(shí)現(xiàn)的一系列社會(huì)網(wǎng)絡(luò)分析分布式計(jì)算并行算法和X-RIME處理迷行,即是X-RIME工具鏈等三部分。
11、Crossbow
CrossBow是在Bowtie和SOAPsnp基礎(chǔ)上,結(jié)合Hadoop的可擴(kuò)展工具,該工具能夠充分利用集群進(jìn)行生物計(jì)算。其中,Bowtie是一個(gè)快速、高效的基因短序列拼接至模板基因組工具:SOAPsnp則是一個(gè)重測(cè)序一致性序列建造程序。它們?cè)趶?fù)雜遺傳病和腫瘤易感的基因定位,到群體和進(jìn)化遺傳學(xué)研究中發(fā)揮著重要作用。CrossBow利用了Hadoop Stream,將Bowtie、SOAPsnp上計(jì)算任務(wù)分布到Hadoop集群中,滿足了新一代基因測(cè)序技術(shù)帶來(lái)的海量數(shù)據(jù)存儲(chǔ)以及計(jì)算分析要求。
12、Chukwa
Chukwa是開源的數(shù)據(jù)收集系統(tǒng),用于監(jiān)控大規(guī)模分布式系統(tǒng)(2000+以上的節(jié)點(diǎn),系統(tǒng)每天產(chǎn)生的監(jiān)控?cái)?shù)據(jù)量在T級(jí)別)。它構(gòu)建在Hadoop的HDFS和MapReduce基礎(chǔ)之上,繼承了Hadoop的可伸縮性和魯棒性。Chukwa包含了一個(gè)強(qiáng)大和靈活的工具集,提供了數(shù)據(jù)的生成、收集、排序、去重、分析和展示一系列功能,是Hadoop使用者、集群運(yùn)維人員和管理人員的必備工具。
13、Flume
Flume是Cloudera開發(fā)維護(hù)的分布式、可靠、高可用的日志收集系統(tǒng)。它將數(shù)據(jù)從產(chǎn)生、傳輸、處理并最終寫入目標(biāo)的路徑的過(guò)程抽象為數(shù)據(jù)流,在具體的數(shù)據(jù)流中,數(shù)據(jù)源支持在Flume中定制數(shù)據(jù)發(fā)送方,從而支持手機(jī)各種不同協(xié)議數(shù)據(jù)。同時(shí),F(xiàn)lume數(shù)據(jù)流提供對(duì)日志數(shù)據(jù)進(jìn)行簡(jiǎn)單處理的能力,如過(guò)濾、格式轉(zhuǎn)換等。此外,F(xiàn)lume還具有能將夠日志寫往各種數(shù)據(jù)目標(biāo)(可定制)的能力??偟膩?lái)說(shuō),F(xiàn)lume是一個(gè)可擴(kuò)展、適合復(fù)雜環(huán)境的海量日志收集系統(tǒng)。
14、Sqoop
Sqoop是SQL-to-Hadoop的縮寫,是Hadoop 的周邊工具,它的主要作用在結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)與Hadoop之間進(jìn)行數(shù)據(jù)交換。Sqoop可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入Hadoop的HDFS、Hive中,也可以將HDFS、Hive中的數(shù)據(jù)導(dǎo)入關(guān)系型數(shù)據(jù)庫(kù)中。Sqoop充分利用了Hadoop的優(yōu)點(diǎn)。整個(gè)數(shù)據(jù)導(dǎo)入導(dǎo)出過(guò)程都是用MapReduce實(shí)現(xiàn)并行化,同時(shí),該過(guò)程中的大部分步驟自動(dòng)執(zhí)行,非常方便。
15、Oozie
在Hadoop中執(zhí)行數(shù)據(jù)處理工作,有時(shí)候需要把多個(gè)作業(yè)連接在一起,才能達(dá)到最終目的。針對(duì)上述需求,Yahaoo開發(fā)了開源工作引擎流Oozie,用于管理和協(xié)調(diào)多個(gè)運(yùn)行在Hadoop平臺(tái)上作業(yè)。在Oozie中,計(jì)算作業(yè)被抽象為動(dòng)作,控制流節(jié)點(diǎn)則用于構(gòu)建動(dòng)作間的依賴關(guān)系,它們一起組成一個(gè)有向無(wú)環(huán)的工作流,描述了一項(xiàng)完整的數(shù)據(jù)處理工作。Oozie工作流系統(tǒng)可以提高數(shù)據(jù)處理流程的柔性,改善Hadoop集群的效率,并降低開發(fā)和運(yùn)營(yíng)人員的工作量。
16、Karmasphere
Karmasphere包括Karmasphere Analyst和Karmasphere Studio。其中,Analyst提供了訪問(wèn)保存在Hadoop里面的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的能力,用戶可以運(yùn)用SQL或者其他語(yǔ)言,進(jìn)行即時(shí)查詢并做進(jìn)一步的分析。Studio則是基于NetBeans的MapReduce集成開發(fā)環(huán)境,開發(fā)人員可以利用它方便快速地創(chuàng)建基于Hadoop的MapReduce應(yīng)用。同時(shí),該工具還提供了一些可視化工具,用于監(jiān)控任務(wù)的執(zhí)行,顯示任務(wù)間的輸入輸出和交互等。需要注意的是,在上面提及的這些項(xiàng)目中,該項(xiàng)目不開源。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。