




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Hadoop基礎(chǔ)知識(shí)
Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可
以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)
行高速運(yùn)算和存儲(chǔ)。Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(DistributedFile
System),其中一個(gè)組件是HDFS(HadoopDistributedFileSystem工HDFS
有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上;而且它提
供高吞吐量(highthroughput)來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)
據(jù)集(largedataset)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,可
以以流的形式訪問(wèn)(streamingaccess)文件系統(tǒng)中的數(shù)據(jù)。Hadoop的框架
最核心的設(shè)計(jì)就是:HDFS和MapReduce.HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),
而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。
1.起源
Hadoop起源于ApacheNutch項(xiàng)目,始于2002年,是ApacheLucene
的子項(xiàng)目之一[2]。2004年,Google在"操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)"(Operating
SystemDesignandImplementation,OSDI)會(huì)議上公開發(fā)表了題為
MapReduce:SimplifiedDataProcessingonLargeClusters(Mapreduce:
簡(jiǎn)化大規(guī)模集群上的數(shù)據(jù)處理)的論文之后,受到啟發(fā)的DougCutting等人開
始嘗試實(shí)現(xiàn)MapReduce計(jì)算框架,并將它與NDFS(NutchDistributedFile
結(jié)合,用以支持引擎的主要算法由于和
System)Nutch[2]oNDFS
MapReduce在Nutch引擎中有著良好的應(yīng)用,所以它們于2006年2月被分
離出來(lái),成為一套完整而獨(dú)立的軟件,并被命名為Hadcop。到了2008年年初,
hadoop已成為Apache的頂級(jí)項(xiàng)目,包含眾多子項(xiàng)目,被應(yīng)用到包括Yahoo
在內(nèi)的很多互聯(lián)網(wǎng)公司[]
2e
2.優(yōu)點(diǎn)
Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。Hadoop以
一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理[]
3o
Hadoop是可靠的,因?yàn)樗僭O(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,因此它維護(hù)多個(gè)
工作數(shù)據(jù)副本,確保能夠針對(duì)失敗的節(jié)點(diǎn)重新分布處理[3]o
Hadoop是高效的,因?yàn)樗圆⑿械姆绞焦ぷ?,通過(guò)并行處理加快處理速
度⑶。
Hadoop還是可伸縮的,能夠處理PB級(jí)數(shù)據(jù)[3]。
此外,Hadoop依賴于社區(qū)服務(wù),因此它的成本比較低,任何人都可以使
用[3]。
Hadoop是一個(gè)能夠讓用戶輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。用戶可以
輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。它主要有以下幾個(gè)
優(yōu)點(diǎn)[4]:
.高可靠性。按位存儲(chǔ)和處理數(shù)據(jù)的能力值得人們信賴[]
1Hadoop4e
2.高擴(kuò)展性。Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,
這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中⑷。
3.高效性。Hadoop能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)
態(tài)平衡,因此處理速度非??膦?。
4.高容錯(cuò)性。Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗
的任務(wù)重新分配[4]。
5.低成本。與一體機(jī)、商用數(shù)據(jù)倉(cāng)庫(kù)以及QlikView、YonghongZ-Suite
等數(shù)據(jù)集市相比,hadoop是開源的,項(xiàng)目的軟件成本因此會(huì)大大降低[4]。
Hadoop帶有用Java語(yǔ)言編寫的框架,因此運(yùn)行在Linux生產(chǎn)平臺(tái)上是
非常理想的。上的應(yīng)用程序也可以使用其他語(yǔ)言編寫,比如[]
HadoopC++4e
Hadoop大數(shù)據(jù)處理的意義
Replicateddatablocks
Hadoop得以在大數(shù)據(jù)處理應(yīng)用中廣泛應(yīng)用得益于其自身在數(shù)據(jù)提取、變
形和加載(ETL)方面上的天然優(yōu)勢(shì)。Hadoop的分布式架構(gòu),將大數(shù)據(jù)處理引擎
盡可能的靠近存儲(chǔ),對(duì)例如像ETL這樣的批處理操作用對(duì)合適,因?yàn)轭愃七@樣
操作的批處理結(jié)果可以直接走向存儲(chǔ)。Hadoop的MapReduce功能實(shí)現(xiàn)了將
單個(gè)任務(wù)打碎,并將碎片任務(wù)(Map)發(fā)送到多個(gè)節(jié)點(diǎn)上,之后再以單個(gè)數(shù)據(jù)集的
形式加載(Reduce)到數(shù)據(jù)倉(cāng)庫(kù)里[4]。
3.核心架構(gòu)
Hadoop由許多元素構(gòu)成。其最底部是HadoopDistributedFileSystem
(HDFS),它存儲(chǔ)Hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS的上一層是
MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成。通過(guò)對(duì)
Hadoop分布式計(jì)算平臺(tái)最核心的分布式文件系統(tǒng)HDFS、M叩Reduce處理過(guò)
程以及數(shù)據(jù)倉(cāng)庫(kù)工具Hive和分布式數(shù)據(jù)庫(kù)Hbase的介紹基本涵蓋了Hadoop
分布式平臺(tái)的所有技術(shù)核心[4].
3.1.HDFS
對(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,因此這是HDFS1.x版本的一個(gè)缺點(diǎn)(單點(diǎn)失敗\
在版本可以存在兩個(gè)解決了單節(jié)點(diǎn)故障問(wèn)題
Hadoop2.xNameNode,[4]0
存儲(chǔ)在HDFS中的文件被分成塊,然后將這些塊復(fù)制到多個(gè)計(jì)算機(jī)中
(DataNode\這與傳統(tǒng)的RAID架構(gòu)大不相同。塊的大?。?.x版本默認(rèn)為
64MB,2.x版本默認(rèn)為128MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶機(jī)決定。
NameNode可以控制所有文件操作。HDFS內(nèi)部的所有通信都基于標(biāo)準(zhǔn)
的TCP/IP協(xié)議⑶。
3.2.NameNode
NameNode是一個(gè)通常在HDFS實(shí)例中的單獨(dú)機(jī)器上運(yùn)行的軟件。它負(fù)
責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶機(jī)的訪問(wèn)。NameNode決定是否將文
件映射到DataNode上的復(fù)制塊上。對(duì)于最常見的3個(gè)復(fù)制塊,第一個(gè)復(fù)制
塊存儲(chǔ)在同一機(jī)架的不同節(jié)點(diǎn)上,最后一個(gè)復(fù)制塊存儲(chǔ)在不同機(jī)架的某個(gè)節(jié)點(diǎn)
上⑸。
實(shí)際的I/O事務(wù)并沒有經(jīng)過(guò)NameNode,只有表示DataNode和塊的
文件映射的元數(shù)據(jù)經(jīng)過(guò)NameNode.當(dāng)外部客戶機(jī)發(fā)送請(qǐng)求要求創(chuàng)建文件時(shí),
NameNode會(huì)以塊標(biāo)識(shí)和該塊的第一個(gè)副本的DataNodeIP地址作為響應(yīng)。
這個(gè)NameNode還會(huì)通知其他將要接收該塊的副本的DataNode[5]。
NameNode在一個(gè)稱為Fslmage的文件中存儲(chǔ)所有關(guān)于文件系統(tǒng)名稱
空間的信息。這個(gè)文件和一個(gè)包含所有事務(wù)的記錄文件(這里是EditLog)將
存儲(chǔ)在NameNode的本地文件系統(tǒng)上。Fslmage和EditLog文件也需要復(fù)
制副本,以防文件損壞或NameNode系統(tǒng)丟失[5].
NameNode本身不可避免地具有SPOF(SinglePointOfFailure)單點(diǎn)
失效的風(fēng)險(xiǎn),主備模式并不能解決這個(gè)問(wèn)題,通i寸HadoopNon-stop
namenode才能實(shí)現(xiàn)100%uptime可用時(shí)間[5]。
3.3.DataNode
DataNode也是一個(gè)通常在HDFS實(shí)例中的單獨(dú)機(jī)器上運(yùn)行的軟件。
集群包含一和大量通常以
HadoopNameNodeDataNodeoDataNode
機(jī)架的形式組織,機(jī)架通過(guò)一個(gè)交換機(jī)將所有系統(tǒng)連接起來(lái)。Hadoop的一個(gè)
假設(shè)是:機(jī)架內(nèi)部節(jié)點(diǎn)之間的傳輸速度快于機(jī)架間節(jié)點(diǎn)的傳輸速度[5]。
DataNode響應(yīng)來(lái)自HDFS客戶機(jī)的讀寫請(qǐng)求。它們還響應(yīng)來(lái)自
NameNode的創(chuàng)建、刪除和復(fù)制塊的命令。NameNode依賴來(lái)自每個(gè)
DataNode的定期心跳(heartbeat)消息。每條消息都包含一個(gè)塊報(bào)告,
NameNode可以根據(jù)這個(gè)報(bào)告驗(yàn)證塊映射和其他文件系統(tǒng)元數(shù)據(jù)。如果
DataNode不能發(fā)送心跳消息,NameNode將采取修復(fù)措施,重新復(fù)制在該
節(jié)點(diǎn)上丟失的塊[]
50
3.4.文件操作
可見,HDFS并不是一個(gè)萬(wàn)能的文件系統(tǒng)。它的主要目的是支持以流的形
式訪問(wèn)寫入的大型文件[5]。
如果客戶機(jī)想將文件寫到HDFS±,首先需要將該文件緩存到本地的臨時(shí)
存儲(chǔ)。如果緩存的數(shù)據(jù)大于所需的HDFS塊大小,創(chuàng)建文件的請(qǐng)求將發(fā)送給
將以標(biāo)識(shí)和目標(biāo)塊響應(yīng)客戶機(jī)[]。
NameNodeoNameNodeDataNode5
同時(shí)也通知將要保存文件塊副本的DataNode.當(dāng)客戶機(jī)開始將臨時(shí)文件
發(fā)送給第一個(gè)DataNode時(shí),將立即通過(guò)管道方式將塊內(nèi)容轉(zhuǎn)發(fā)給副本
客戶機(jī)也負(fù)責(zé)創(chuàng)建保存在相同名稱空間中的校驗(yàn)和
DataNodeoHDFS
(checksum)文件[5]。
在最后的文件塊發(fā)送之后,NameNode將文件創(chuàng)建提交到它的持久化元數(shù)
據(jù)存儲(chǔ)(在和文件)[]
EditLogFslmage50
3.5.Linux集群
Hadoop框架可在單一的Linux平臺(tái)上使用(開發(fā)和調(diào)試時(shí)),官方提供
MiniCluster作為單元測(cè)試使用,不過(guò)使用存放在機(jī)架上的商業(yè)服務(wù)器才能發(fā)揮
它的力量。這些機(jī)架組成一個(gè)Hadoop集群。它通過(guò)集群拓?fù)渲R(shí)決定如何在
整個(gè)集群中分配作業(yè)和文件。Hadoop假定節(jié)點(diǎn)可能失敗,因此采用本機(jī)方法
處理單個(gè)計(jì)算機(jī)甚至所有機(jī)架的失?。郏?/p>
5o
Hadoop和高效能計(jì)算、網(wǎng)格計(jì)算的區(qū)別
在Hadoop出現(xiàn)之前,高性能計(jì)算和網(wǎng)格計(jì)算一直是處理大數(shù)據(jù)問(wèn)題主要
的使用方法和工具,它們主要采用消息傳遞接口(MessagePassingInterface,
MPI)提供的API來(lái)處理大數(shù)據(jù)。高性能計(jì)算的思想是將計(jì)算作業(yè)分散到集群
機(jī)器上,集群計(jì)算節(jié)點(diǎn)訪問(wèn)存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN構(gòu)成的共享文件系統(tǒng)獲取數(shù)據(jù),
這種設(shè)計(jì)比較適合計(jì)算密集型作業(yè)。當(dāng)需要訪問(wèn)像PB級(jí)別的數(shù)據(jù)的時(shí)候,由于
存儲(chǔ)設(shè)備網(wǎng)絡(luò)帶寬的限制,很多集群計(jì)算節(jié)點(diǎn)只能空閑等待數(shù)據(jù)。而Hadoop
卻不存在這種問(wèn)題,由于Hadoop使用專門為分布式計(jì)算設(shè)計(jì)的文件系統(tǒng)
HDFS,計(jì)算的時(shí)候只需要將計(jì)算代碼推送到存儲(chǔ)節(jié)點(diǎn)上,即可在存儲(chǔ)節(jié)點(diǎn)上完
成數(shù)據(jù)本地化計(jì)算,Hadoop中的集群存儲(chǔ)節(jié)點(diǎn)也是計(jì)算節(jié)點(diǎn)[5]。
在分布式編程方面,MPI是屬干比較底層的開發(fā)庫(kù),它賦予了程序員極大
的控制能力,但是卻要程序員自己控制程序的執(zhí)行流程,容錯(cuò)功能,甚至底層的
套接字通信、數(shù)據(jù)分析算法等底層細(xì)節(jié)都需要自己編程實(shí)現(xiàn)。這種要求無(wú)疑對(duì)開
發(fā)分布式程序的程序員提出了較高的要求。相反,Hadoop的MapReduce卻
是一個(gè)高度抽象的并行編程模型,它將分布式并行編程抽象為兩個(gè)原語(yǔ)操作,即
map操作和reduce操作,開發(fā)人員只需要簡(jiǎn)單地實(shí)現(xiàn)相應(yīng)的接口即可,完全
不用考慮底層數(shù)據(jù)流、容錯(cuò)、程序的并行執(zhí)行等細(xì)節(jié)。這種設(shè)計(jì)無(wú)疑大大降低了
開發(fā)分布式并行程序的難度[5]。
網(wǎng)格計(jì)算通常是指通過(guò)現(xiàn)有的互聯(lián)網(wǎng),利用大量來(lái)自不同地域、資源異構(gòu)的
計(jì)算機(jī)空閑的CPU和磁盤來(lái)進(jìn)行分布式存儲(chǔ)和計(jì)算。這些參與計(jì)算的計(jì)算機(jī)具
有分處不同地域、資源異構(gòu)(基于不同平臺(tái),使用不同的硬件體系結(jié)構(gòu)等)等特
征,從而使網(wǎng)格計(jì)算和Hadoop這種基于集群的計(jì)算相區(qū)別開。Hadoop集群
一般構(gòu)建在通過(guò)高速網(wǎng)絡(luò)連接的單一數(shù)據(jù)中心內(nèi),集群計(jì)算機(jī)都具有體系結(jié)構(gòu)、
平臺(tái)一致的特點(diǎn),而網(wǎng)格計(jì)算需要在互聯(lián)網(wǎng)接入環(huán)境下使用,網(wǎng)絡(luò)帶寬等都沒有
保證[]
5o
發(fā)展現(xiàn)狀
Hadoop設(shè)計(jì)之初的目標(biāo)就定位于高可靠性、高可拓展性、高容錯(cuò)性和高
效性,正是這些設(shè)計(jì)上與生俱來(lái)的優(yōu)點(diǎn),才使得Hadoop一出現(xiàn)就受到眾多大
公司的青睞,同時(shí)也引起了研究界的普遍關(guān)注。Hadoop技術(shù)在互聯(lián)網(wǎng)領(lǐng)域已
經(jīng)得到了廣泛的運(yùn)用,例如,Yahoo使用4000個(gè)節(jié)點(diǎn)的Hadoop集群來(lái)支
持廣告系統(tǒng)和Web搜索的研究;Facebook使用1000個(gè)節(jié)點(diǎn)的集群運(yùn)行
Hadoop,存儲(chǔ)日志數(shù)據(jù),支持其上的數(shù)據(jù)分析和機(jī)器學(xué)習(xí);百度用Hadoop
處理每周200TB的數(shù)據(jù),從而進(jìn)行搜索日志分析和網(wǎng)頁(yè)數(shù)據(jù)挖掘工作;中國(guó)移
動(dòng)研究院基于Hadoop開發(fā)了"大云"(BigCloud)系統(tǒng),不但用于相關(guān)數(shù)
據(jù)分析,還對(duì)外提供服務(wù);淘寶的Hadoop系統(tǒng)用于存儲(chǔ)并處理電子商務(wù)交易
的相關(guān)數(shù)據(jù)。國(guó)內(nèi)的高校和科研院所基于Hadoop在數(shù)據(jù)存儲(chǔ)、資源管理、作
業(yè)調(diào)度、性能優(yōu)化、系統(tǒng)高可用性和安全性方面進(jìn)行研究,相關(guān)研究成果多以開
源形式貢獻(xiàn)給社區(qū)
Hadoop[6]0
除了上述大型企業(yè)將Hadoop技術(shù)運(yùn)用在自身的服務(wù)中外,一些提供
Hadoop解決方案的商業(yè)型公司也紛紛跟進(jìn),利用自身技術(shù)對(duì)Hadoop進(jìn)行優(yōu)
化、改進(jìn)、二次開發(fā)等,然后以公司自白產(chǎn)品形式對(duì)外提供Hadoop的商業(yè)服
務(wù)。比較知名的有創(chuàng)辦于2008年的Cloudera公司,它是一家專業(yè)從事基于
ApacheHadoop的數(shù)據(jù)管理軟件銷售和服務(wù)的公司,之希望充當(dāng)大數(shù)據(jù)領(lǐng)域中
類似RedHat在Linux世界中的角色。該公司基于ApacheHadoop發(fā)行了相
應(yīng)的商業(yè)版本ClouderaEnterprise,它還提供Hadoop相關(guān)的支持、咨詢、
培訓(xùn)等服務(wù)。在2009年,Cloudera聘請(qǐng)了DougCutting(Hadoop的創(chuàng)始
人)擔(dān)任公司的首席架構(gòu)師,從而更加加強(qiáng)了Cloudera公司在Hadoop生態(tài)
系統(tǒng)中的影響和地位。最近,Oracle也表示已經(jīng)將Cloudera的Hadoop發(fā)
行版和ClouderaManager整合到OracleBigDataAppliance中。同樣Jntel
也基于Hadoop發(fā)行了自己的版本IDH。從這些可以看出,越來(lái)越多的企業(yè)將
Hadoop技術(shù)作為進(jìn)入大數(shù)據(jù)領(lǐng)域的必備技術(shù)[6]。
4.應(yīng)用程序
Hadoop的最常見用法之一是Web搜索。雖然它不是唯一的軟件框架應(yīng)
用程序,但作為一個(gè)并行數(shù)據(jù)處理引擎,它的表現(xiàn)非常突出。Hadoop最有趣
的方面之一是M叩andReduce流程,它受到Google開發(fā)的啟發(fā)。這個(gè)流程
稱為創(chuàng)建索引,它將Web爬行器檢索到的文本W(wǎng)eb頁(yè)面作為輸入,并且將
這些頁(yè)面上的單詞的頻率報(bào)告作為結(jié)果。然后可以在整個(gè)Web搜索過(guò)程中使
用這個(gè)結(jié)果從已定義的搜索參數(shù)中識(shí)別內(nèi)容[]
7o
MapReduce
最簡(jiǎn)單的M叩Reduce應(yīng)用程序至少包含3個(gè)部分:一個(gè)M叩函數(shù)、一
個(gè)Reduce函數(shù)和一個(gè)main函數(shù)。main函數(shù)將作業(yè)控制和文件輸入/輸出
結(jié)合起來(lái)。在這點(diǎn)上,Hadoop提供了大量的接口和抽象類,從而為Hadoop
應(yīng)用程序開發(fā)人員提供許多工具,可用于調(diào)試和性能度量等[7]。
MapReduce本身就是用于并行處理大數(shù)據(jù)集的軟件框架。MapReduce
的根源是函數(shù)性編程中的map和reduce函數(shù)。它由兩個(gè)可能包含有許多實(shí)
例(許多M叩和Reduce)的操作組成。M叩函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換
為一個(gè)鍵/值對(duì)列表,輸入域中的每個(gè)元素對(duì)應(yīng)一個(gè)鍵/值對(duì)。Reduce函數(shù)接受
Map函數(shù)生成的列表,然后根據(jù)它們的鍵(為每個(gè)鍵生成一個(gè)鍵/值對(duì))縮小鍵
/值對(duì)列表[7]。
這里提供一個(gè)示例,幫助您理解它。假設(shè)輸入域是onesmallstepfor
在這個(gè)域上運(yùn)行叩函數(shù)將得出以下的
manzonegiantleapformankind0M
鍵/值對(duì)列表[7]:
(one,l)(small,l)(step,l)(for,l)(man,lXone,l)(giant,l)(leap,l)
(for,l)(mankind,1)
如果對(duì)這個(gè)鍵/值對(duì)列表應(yīng)用Reduce函數(shù),將得到以下一組鍵/值對(duì):
(one,2)(smallj)(step,l)(for,2)(man,l)(giant,1)(leap,l)
(mankind』)
結(jié)果是對(duì)輸入域中的單詞進(jìn)行計(jì)數(shù),這無(wú)疑對(duì)處理索引十分有用。但是,假
設(shè)有兩個(gè)輸入域,第一個(gè)是onesmallstepforman第二個(gè)是onegiantleap
您可以在每個(gè)域上執(zhí)行函數(shù)和函數(shù),然后將這
formankindoMapReduce
兩個(gè)鍵/值對(duì)列表應(yīng)用到另一個(gè)Reduce函數(shù),這時(shí)得到與前面一樣的結(jié)果。換
句話說(shuō),可以在輸入域并行使用相同的操作得到的結(jié)果是一樣的,但速度更快。
這便是的威力;它的并行功能可在任意數(shù)量的系統(tǒng)上使用[]
MapReduce7o
回到Hadoop上,它是如何實(shí)現(xiàn)這個(gè)功能的?一個(gè)代表客戶機(jī)在單個(gè)主系
統(tǒng)上啟動(dòng)的應(yīng)用程序稱為類似于,它
MapReduceJobTrackeroNameNode
是Hadoop集群中唯一負(fù)責(zé)控制MapReduce應(yīng)用程序的系統(tǒng)。在應(yīng)用程序
提交之后,將提供包含在HDFS中的輸入和輸出目錄。JobTracker使用文件
塊信息物理量和位置確定如何創(chuàng)建其他TaskTracker從屬任務(wù)。MapReduce
應(yīng)用程序被復(fù)制到每個(gè)出現(xiàn)輸入文件塊的節(jié)點(diǎn)。將為特定節(jié)點(diǎn)上的每個(gè)文件塊創(chuàng)
建一個(gè)唯一的從屬任務(wù)。每個(gè)TaskTracker將狀態(tài)和完成信息報(bào)告給
JobTracker[7]。
顯小處理和存儲(chǔ)的物埋分布的Hadoop集群
Hadoop的這個(gè)特點(diǎn)非常重要,因?yàn)樗]有將存儲(chǔ)移動(dòng)到某個(gè)位置以供
處理,而是將處理移動(dòng)到存儲(chǔ)[7]。
5.區(qū)別
Hadoop是Apache軟件基金會(huì)發(fā)起的一個(gè)項(xiàng)目,在大數(shù)據(jù)分析以及非結(jié)
構(gòu)化數(shù)據(jù)蔓延的背景下,受到了前所未有的關(guān)注[]
Hadoop8o
Hadoop是一種分布式數(shù)據(jù)和計(jì)算的框架。它很擅長(zhǎng)存儲(chǔ)大量的半結(jié)構(gòu)化的
數(shù)據(jù)集。數(shù)據(jù)可以隨機(jī)存放,所以一個(gè)磁盤的失敗并不會(huì)帶來(lái)數(shù)據(jù)丟失。Hadoop
也非常擅長(zhǎng)分布式計(jì)算——快速地跨多臺(tái)機(jī)器處理大型數(shù)據(jù)集合[9]。
MapReduce是處理大量半結(jié)構(gòu)化數(shù)據(jù)集合的編程模型。編程模型是一種處
理并結(jié)構(gòu)化特定問(wèn)題的方式。例如,在一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,使用一種集合語(yǔ)言執(zhí)
行查詢,如SQL。告訴語(yǔ)言想耍的結(jié)果,并將它提交給系統(tǒng)來(lái)計(jì)算出如何產(chǎn)生
計(jì)算。還可以用更傳統(tǒng)的語(yǔ)言(C++,Java),一步步地來(lái)解決問(wèn)題。這是兩種不
同的編程模型,MapReduce就是另外一種[9]。
Inputdoman
M叩Red
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紗線經(jīng)銷合同范本
- 磁性材料的環(huán)境影響及優(yōu)化策略
- 2025至2030年中國(guó)硬質(zhì)合金木工刀具材料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 創(chuàng)業(yè)團(tuán)隊(duì)合同范本
- 電機(jī)控制器維護(hù)保養(yǎng)的專業(yè)知識(shí)解讀
- 電子商務(wù)教育中的創(chuàng)新創(chuàng)業(yè)教育內(nèi)容設(shè)計(jì)
- 科技產(chǎn)品與藝術(shù)設(shè)計(jì)的融合創(chuàng)新
- 知識(shí)產(chǎn)權(quán)在科技創(chuàng)新中的激勵(lì)作用
- 研究生畢業(yè)論文整體規(guī)劃與答辯流程解析
- 覆土合同范本
- 五十二個(gè)中醫(yī)護(hù)理方案
- GB/T 2678.1-1993紙漿篩分測(cè)定方法
- GB 18450-2001民用黑火藥
- GA 1206-2014注氮控氧防火裝置
- DB37-T 2401-2022危險(xiǎn)化學(xué)品崗位安全生產(chǎn)操作規(guī)程編寫導(dǎo)則
- 2023年包頭市水務(wù)(集團(tuán))有限公司招聘筆試題庫(kù)及答案解析
- 云南省專業(yè)技術(shù)職務(wù)任職資格推薦評(píng)審表(空白表)
- 施工機(jī)具進(jìn)場(chǎng)檢查驗(yàn)收記錄
- HSK標(biāo)準(zhǔn)教程4上第1課課件
- 初中化學(xué)方程式匯總(魯教版)
- 企業(yè)組織架構(gòu)表
評(píng)論
0/150
提交評(píng)論