hadoop入門實戰(zhàn)手冊Hadoop相關(guān)信息見專題頁面_第1頁
hadoop入門實戰(zhàn)手冊Hadoop相關(guān)信息見專題頁面_第2頁
hadoop入門實戰(zhàn)手冊Hadoop相關(guān)信息見專題頁面_第3頁
hadoop入門實戰(zhàn)手冊Hadoop相關(guān)信息見專題頁面_第4頁
hadoop入門實戰(zhàn)手冊Hadoop相關(guān)信息見專題頁面_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

概 系統(tǒng)特 使用場 術(shù) 目 先決條 支持平 所需軟 安裝軟 ....................................................................................................................................運行Hadoop集群的準(zhǔn)備工 配 免ssh設(shè) 執(zhí) Slave(60,245上)配 初始化文件系 啟動 停止 測 管理界面與命 hdfs運行狀態(tài)界 Map-reduce的運行狀態(tài)界 直接令行查 運行的進(jìn)程查 架構(gòu)分 HDFS的三個重要角 HDFS設(shè)計特 算法介 Hadoop框架下的 錯誤!未定義書簽 經(jīng)驗總 新增節(jié) 刪除節(jié) datanode啟動失敗,各slave節(jié)點的namespaceIDs與masters不 taskTracker和jobTracker啟動失 Toomanyfetch- 能夠啟動datanode,但無法,也無法結(jié)束的錯 解決hadoopOutOfMemoryError問題 與HDFS有關(guān)的地址及端口屬 與MapReduce有關(guān)的地址及端口屬 附 配置文 集群配置說 概什么是HadoopApacheSoftwareFoundation2005Lucene的子項目Nutch的一部分正式引入。它受到最先由Lab開發(fā)的MapReduce和FileSystem的啟發(fā)。2006年3月份,MapReduce和NutchDistributedFileSystem(NDFS)分別被納入稱為Hadoop的項目中。Hadoop并不僅僅是一個用于的分布式文件系統(tǒng),而是設(shè)計用來在由通用計算設(shè)備組成的大型集群上執(zhí)行分布式應(yīng)用的基礎(chǔ)框架。它由Apache開發(fā)。用戶可以在不了解Hadoop是一個可以更容易開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺。下圖是Hadoop的體系結(jié)Hadoop框架中最的設(shè)計就是:MapReduce和HDFSHDFS是Hadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem)的縮寫,為分布為什么要選擇系統(tǒng)使用術(shù) 儲。HDFS了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面數(shù)據(jù)。從看,一個文件其實被分成一個或多個數(shù)據(jù)塊,這些塊在一組Datanode上。Datanode負(fù)責(zé)處理文件系統(tǒng)客戶端的讀寫請求。在Namenode的統(tǒng)一調(diào)度下進(jìn)行Secondnamenode:光從字面上來理解,很容易讓一些初學(xué)者先入為主的認(rèn)為:SecondaryNameNode(snn)NameNode(nn)的熱備進(jìn)程。其實不是。snnnamenodeHDFSmetadatanamenode重啟的時間。JobtrackerTasktracherJobTrackerMapReducejobHadoopJobTrackertask,slavetask。要,一般情況應(yīng)該把JobTracker部署在單獨的機(jī)器上。Hadoop的單機(jī)部署mon/docs/current/singlenodesetup.html#Supported+Plat目Win32平臺是作為開發(fā)平臺支持的。由于分布式操作尚未在Win32平臺上充分測試,以Linux為例:$sudoapt-getinstall$sudoapt-getinstall地址 運行Hadoop集群的準(zhǔn)備$單機(jī)模式的操作下面的實例將已解壓的conf $$mkdir$cpconf/*.xml$cat 偽分布式模式的操作方個獨立的Java進(jìn)程運行。配hadoop-site.xml文件變成三個配置文件core-site.xml,hdfssite.xml,mapred-site.xml.conf/core-conf/hdfs-conf/mapred-免ssh設(shè)$ssh$ssh-keygen-tdsa-P''-f$cat~/.ssh/id_dsa.pub>>執(zhí)首先使hadoop命令HadoopFileSystemHDFS)進(jìn)行格式化首先,請namenodeDFS文件系統(tǒng)進(jìn)行格式化。在安裝過程中完成了這個步驟,但是了解是否需STARTUP_MSG:StartingNameNode host=TEST085/06 args=[-format] build1099333;compiledby'oom'onWedMay 407:57:50PDT201111/07/1217:47:12INFOutil.GSet:VM=32-11/07/1217:47:12INFOutil.GSet:2%maxmemory=19.33375=2^22=419430411/07/1217:47:13INFOnamenode.FSNamesystem:fsOwner=hadoop11/07/1217:47:13INFOnamenode.FSNamesystem:supergroup=supergroup 11/07/1217:47:13INFOnamenode.FSNamesystem:isAccessTokenEnabled=falseaccessKeyUpdateInterval=0min(s),accessTokenLifetime=0min(s)11/07/1217:47:13INFOnamenode.NameNode:Cachingfilenamesoccuringmorethan10times11/07/1217:47:13INFOcommon.Storage:Imagefileofsize112savedin0seconds.11/07/1217:47:13INFOcommon.Storage:Storagedirectory/tmp/hadoop-hadoop/dfs/namehasbeensuccessfullyformatted.Hadoop[hadoop@TEST085hadoop-]$bin/start- exportHADOOP_SSH_OPTS="-p1234"--$bin/hadoopfs-putconf$bin/hadoopfs-getoutput$cat$bin/hadoopfs-catHadoop5個守護(hù)進(jìn)程:namenode、secondarynamenode、datanode、jobtracker和tasktracker。在啟動每個守護(hù)進(jìn)程時,會看到一些相關(guān)信息(指出日志的位置)。每個守護(hù)進(jìn)程都在運行。圖1說明完成啟動之后偽分布式配置1.HadoopHadoop集群搭建過程手記參考: /cluster85)60(160),54(254),架構(gòu)規(guī)化免SSH設(shè)名稱節(jié)點。2)以hadoop(85)ssh-keygen-trsa 到當(dāng)前位置,命名為然后執(zhí)行命令ssh,3)接下來,同樣也hadoop用戶登陸數(shù)據(jù)節(jié)點服務(wù)器(160,254),創(chuàng)建600權(quán)限 od600.ssh);再把名稱服務(wù)器上的到數(shù) Hadoop軟件安至少需要將JAVA_HOME設(shè)置為Java安裝根路徑(安裝過程參考“3hadoop。##Thejavaimplementationtouse.exportJAVA_HOME=/usr/local/java--修改成你自jdk安裝#The umamountofheaptouse,inMB.Defaultis1000.exportHADOOP_HEAPSIZE=200 Master(85)配hadoop0.20版本,配置文件由以前的hadoop-site.xml文件變成三個配置文件core-site.xml,進(jìn)行獨立開發(fā),配置文件也獨立了。[[root@5conf]#catcore-<?xml<?xml<?xmlTheactualnumberofreplicationscanbespecifiedwhenthefileiscreated.Thedefaultisusedifreplicationisnotspecifiedincreatetime.<?xml<?xml在/home/hadoopbashrc加入exportexportexportPATH=/root/hadoop/hadoop/bin:$PATHSlave(60,245上)配置在Slave(60,245上)上的配置文件如下(hdfs-site.xml不需要配置<?xml<?xml<?xml<?xml初始化namenode,HDFS$bin/hadoopnamenode 人害怕真的是格式化自己的文件系統(tǒng)了,其實大可不必?fù)?dān)心,namenodeformat只是初始化一些和文件而已。啟動startingnamenode,logging60:startingdatanode,loggingto45:startingdatanode,loggingto5:startingstartingnamenode,logging60:startingdatanode,loggingto45:startingdatanode,loggingto5:startingsecondarynamenode,loggingstartingstartingjobtracker,logging60:startingtasktracker,loggingto45:startingtasktracker,loggingto 第一步啟動[hadoop@TEST085[hadoop@TEST085hadoop-]$bin/start-dfs.shstartingnamenode,loggingto60:startingdatanode,loggingto45:startingdatanode,loggingto 5:startingsecondarynamenode,logging[hadoop@TEST085[hadoop@TEST085hadoop-]$bin/start-mapred.shstartingjobtracker,loggingto60:startingtasktracker,loggingto45:startingtasktracker,logging 注:實際應(yīng)用中amede和othe不在同一臺服務(wù)器上,則需要按下面在分配的NameNode上,運行下面令啟動bin/start-dfs.sh會參照NameNode${HADOOP_CONF_DIR}/slaves文件的內(nèi)容,在所有列出的slave上啟動DataNode守護(hù)進(jìn)程。在分配的JobTracker上,運行下面令啟動bin/start-mapred.sh會參照J(rèn)obTracker${HADOOP_CONF_DIR}/slaves文件的內(nèi)容,在所有列出的slave上啟動TaskTracker守護(hù)進(jìn)程。停止在分配的NameNode上,執(zhí)行下面令停止在分配的JobTracker上,運行下面令停止在hdfs上創(chuàng)建test1文件夾,上傳文件到 [hadoop@TEST085hadoop-]$[hadoop@TEST085hadoop-]$bin/hadoopfs-mkdirtest1[hadoop@TEST085hadoop-]$bin/hadoopfs-put./README.txttest1[hadoop@TEST085hadoop-]$bin/hadoopfs-lsFound1 -hadoop 02011-07-2119:58運行一個map-reduce示例程序wordcount,運行結(jié)果如下11/07/2215:21:29INFOinput.FileInputFormat:Totalinputpathstoprocess:111/07/2211/07/2215:21:29INFOinput.FileInputFormat:Totalinputpathstoprocess:111/07/2215:21:30INFOmapred.JobClient:Runningjob:job_201107221440_000111/07/2215:21:31INFOmapred.JobClient:map0%reduce0%11/07/2215:21:51INFOmapred.JobClient:map100%reduce11/07/2215:22:09INFOmapred.JobClient:map100%reduce11/07/2215:22:15INFOmapred.JobClient:Jobcomplete:job_201107221440_000111/07/2215:22:15INFOmapred.JobClient:Counters:25 Job11/07/2215:22:15INFOmapred.JobClient: Launchedreducetasks=111/07/2215:22:15INFOmapred.JobClient: 11/07/2215:22:15INFOmapred.JobClient: Totaltimespentbyallreduceswaitingafterreservingslots(ms)=011/07/2215:22:15INFOmapred.JobClient: Totaltimespentbyallmapswaitingafterreservingslots11/07/2215:22:15INFOmapred.JobClient: Launchedmaptasks=111/07/2215:22:15INFO Data-localmap 11/07/2215:22:15INFOmapred.JobClient: FileOutputFormatCounters11/07/2215:22:15INFOmapred.JobClient: BytesWritten=130611/07/2215:22:15INFOmapred.JobClient: 11/07/2215:22:15INFOmapred.JobClient: 11/07/2215:22:15INFOmapred.JobClient: FileInputFormatCounters11/07/2215:22:15INFOmapred.JobClient: BytesRead=136611/07/2215:22:15INFOmapred.JobClient: Map-ReduceFramework11/07/2215:22:15INFOmapred.JobClient: 11/07/2215:22:15INFOmapred.JobClient: Mapoutputmaterializedbytes=183611/07/2215:22:15INFOmapred.JobClient: Combineoutputrecords=13111/07/2215:22:15INFOmapred.JobClient: Mapinputrecords=3111/07/2215:22:15INFOmapred.JobClient: Reduceshufflebytes=183611/07/2215:22:15INFOmapred.JobClient: 11/07/2215:22:15INFOmapred.JobClient: SpilledRecords=26211/07/2215:22:15INFOmapred.JobClient: Mapoutputbytes=205511/07/2215:22:15INFOmapred.JobClient: Combineinputrecords=17911/07/2215:22:15INFOmapred.JobClient: Mapoutputrecords=17911/07/2215:22:15INFOmapred.JobClient: 11/07/2215:22:15INFOmapred.JobClient: Reduceinputrecords=131[hadoop@TEST085hadoop-]$bin/hadoopfs-lsoutput1查看輸出結(jié)果文件,這個文件在hdfs上[hadoop@TEST085[hadoop@TEST085hadoop-]$hadoopfs-lsoutput1Found3items 3hadoop 02011-07-2215:22 -hadoop 02011-07-2215:21 3hadoop [hadoop@TEST085hadoop-]$hadoopfs-catoutput1/part-r- 1 1111740.13)<>1111 11 管理界面與命令hdfs運行狀態(tài)查看hdfs運行狀態(tài),可以通過web;Map-reduce查看map-reduce信息,可以通過web界面來直接令行查[root@5~]#hadoopdfsadmin-reportConfiguredCapacity:291104653312(271.11GB)PresentCapacity:74432905216(69.32DFSRemaining:74432823296(69.32DFSUsed:81920(80DFSUsed%:Underreplicatedblocks:Blockswithcorruptreplicas:Missingblocks:Datanodesavailable:2(2total,0Name:missionStatus:ConfiguredCapacity:37169479680(34.62DFSUsed:36864(36NonDFSUsed:30097534976(28.03DFSRemaining:7071907840(6.59DFSUsed%:DFSRemaining%:Lastcontact:FriJul2215:16:36CSTName:missionStatus:ConfiguredCapacity:253935173632(236.5DFSUsed:45056(44NonDFSUsed:186574213120(173.76DFSRemaining:67360915456(62.73DFSUsed%:DFSRemaining%:Lastcontact:FriJul2215:16:37CST 274400.95.8119557659428pts/0 /usr/local/java/bin/java-Dproc_namenode- - 178400.53.5118509236196 184350.94.2119983642744pts/0 /usr/local/java/bin/java-Dproc_jobtracker- -[hadoop@TEST085hadoop-]$netstat-ant|grep0000000000000000 111271.36.4117958432656S 111271.36.4117958432656S /usr/local/java/bin/java-Dproc_datanode-Xmx1000m- 112150.87.0118813235660S /usr/local/java/bin/java-Dproc_tasktracker--[hadoop@DBSERVER/]$netstat-ant|grep0000【架構(gòu)參考:mo /hdfsdesign.html】Hadoop有許多元素構(gòu)成。最底部是HadoopDistributedFileSystem(HDFS),它Hadoop集群中所有節(jié)點上的文件,與HDFS相關(guān)的服務(wù)有NameNode、SecondaryNameNodeDataNodeHDFS(對于本文)MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成(MapReduce相關(guān)的服務(wù)有JobTracker和TaskTracker兩種)。Hadoop集群中有兩種角色:masterslave,mastermastermaster。對外部客戶機(jī)而言,HDFS就像一個傳統(tǒng)的分級文件系統(tǒng)??梢詣?chuàng)建、刪除、移動這是由它自身的特點決定的。這些節(jié)點包括NameNode(僅一個),它在HDFS提供元數(shù)據(jù)服務(wù);DataNode,它為HDFS提供塊。5-1Hadoop這與傳統(tǒng)的RAID架構(gòu)大不相同。塊的大小(通常為64MB)和的塊數(shù)量在創(chuàng)建文件時由客戶機(jī)決定。NameNode可以控制所有文件操作。HDFS的所有通信都基于標(biāo)準(zhǔn)的TCP/IP協(xié)議。HDFS圖5-2:HDFS結(jié)構(gòu)示上面這個圖很經(jīng)典,圖中展現(xiàn)了整個HDFS三個重要角色:NameNodeDataNode和ClientNameNode可以看作是分布式文件系統(tǒng)中的管理者,主要負(fù)責(zé)管理文件系統(tǒng)名空間、集群配置信息和塊的等。NameNode會將文件系統(tǒng)的Meta-data在內(nèi)DataNode是文件的基本單元,它將Block在本地文件系統(tǒng)中,保存了Block文件寫入Client向NameNode文件文件BlockDataNode開始直接相互HDFS下面說說HDFS的幾個設(shè)計特點(對于框架設(shè)計值得借鑒數(shù)據(jù)(場景為DataNode失敗、需要平衡DataNode的利用率和需要平衡DataNodeNameNode當(dāng)客戶端要寫入文件到DataNode上,首先客戶端一個Block然后寫到第一個DataNode算法 具體過程序如下: Map , 上述就是MapReduce大致處理過程,在Map前還可能會對輸入的數(shù)據(jù)有Split(分割)Hadoop框架下的MapReduce3MapReduce函數(shù)和一個main函數(shù)。main函數(shù)將作業(yè)控制和文件輸入/輸出結(jié)合起來。在這點上,Hadoop提供了大量的接口和抽象類,從而為Hadoop應(yīng)用程序開發(fā)提供許多工具,MapReduce本身就是用于并行處理大數(shù)據(jù)集的軟件框架。MapReduce的根源是函數(shù)mapreduce函數(shù)。它由兩個可能包含有許多實例(許多Map和Reduce)的操作組成。Map函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換為一個鍵/值對列表,輸入域中的每個元素對應(yīng)一個鍵/值對。Reduce函數(shù)接受Map函數(shù)生成的列表,然后根據(jù)它們的示例在這個域上運行Map函數(shù)將得出以下的鍵/值對列表:(one,(one,1)(small,1)(step,1)(for,1)(man,(one,1)(giant,1)(leap,1)(for,1)(mankind,(one, (small,1)(step,(one, (small,1)(step, (for,2)(man,(giant,1)(leap,1)(mankind,onesmallstepformanonegiantleapformankindMapReduce函數(shù),然后將這兩個鍵/值對列Reduce函數(shù),這時得到與前面一樣的結(jié)果。換句話說,可以在輸入域并行使用相同的操作,得到的結(jié)果是一樣的,但速度更快。這便是MapReduce的;它示例Input<行號,文本內(nèi)容Map:<行號,文本內(nèi)容List<<單詞,數(shù)量Reduce:<單詞List<數(shù)量1<單詞,數(shù)量合計Output:List<<單詞,數(shù)量Hadoop—客戶機(jī)在單個主系統(tǒng)上啟動的MapReduce應(yīng)用程序稱為JobTracker。類似于NameNode,它是Hadoop集群中惟一負(fù)責(zé)控制MapReduce應(yīng)用程序的系統(tǒng)。在應(yīng)用程序提交之后,將提供包含在HDFS中的輸入和輸出 理量和位置)確定如何創(chuàng)建其他TaskTracker從屬任務(wù)。MapReduce應(yīng)用程序被TaskTrackerJobTracker5-5顯示一個示例集群中的工作分圖5-5.顯示處理和的物理分布的Hadoop集群下面綜合MapReduce和HDFS來看Hadoop的結(jié)構(gòu)圖3:Hadoop結(jié)構(gòu)示意MovingData。就是在分布式處理中,移動數(shù)據(jù)的代價總是高于轉(zhuǎn)移計算的代價。簡單來說對外部客戶機(jī)而言,HDFS就像一個傳統(tǒng)的分級文件系統(tǒng)??梢詣?chuàng)建、刪除、移動或重命HDFS的架構(gòu)是基于一組特定的節(jié)點構(gòu)建的(1),這是由它務(wù);DataNode,它為HDFS提供塊。由于僅存在一個NameNode,因此這是HDFSHadoop Hadoop命令常規(guī)選項描-D-fs-jt-files逗號分隔的文件列表指定要拷貝到mapreduce集群的文件的逗號分隔的列表。只適用于job。列表。只適用于job。用戶命令用法:hadooparchive- Hadoop命令distcp用于遞歸地拷貝文件或 用法:hadoopdistcp<srcurl><desturl>srcurl源UrldesturlUrlfs(FSS命令用法:hadoopFSS命令指調(diào)用文件系統(tǒng)(FS)S命令應(yīng)使用bin/hadoopfs<args>的形式。所有的的FSs命令使用URI路徑作為參數(shù)。URI格式是scheme://authority/path。對HDFS文件系統(tǒng),scheme是hdfs,對本地文件系統(tǒng),scheme是file。其中schemeauthority參數(shù)都是可選的,如果未加指定,就會使用配置中指定的默認(rèn)scheme。一個HDFS文件或比如出錯信息會輸出到stderr,其他信息輸出到stdout。使用方法:hadoopfscatURI[URI…]將路徑指定文件的內(nèi)容輸出到stdout。hadoopfs-cathadoopfs-cat和put命令相似。- Hadoopfs–cphadoopfs–cp使用方法:hadoopfsdu此HadoopS命令顯示 Hadoopfs使用方法:hadoopfs使用方法:hadoopfs使用方法:hadoopfsget[-ignorecrc][-文件以及CRC信息。hadoopfs–gethadoopfs–get 用法:hadoop命令選項描述用法:hadoopbalancerthreshold命令選 描用法:hadoopdatanode命令選 描-dfsadmindfsadmin-help命令能列出所有當(dāng)前支持令。比如: -finalizeUpgrade用法:hadoop用法:hadoopnamenode[-format|[-upgrade|[-rollback|[-|[-命令選 描----- 用法:hadoopsecondarynamenode[-checkpoint[force]]|[-命令選項描-用法:hadoop這部分內(nèi)容其實可以通過命令的Help以及介紹了解,這里主要側(cè)重于介紹一下我用的比較多的幾個命令。Hadoopdfs這個命令后面加參數(shù)就是對于HDFSLinux操作系統(tǒng)的Hadoopdfs–ls就是查看/usr/root Hadoopdfs–rmrxxx就是刪 Hadoop的應(yīng)用Hadoop利用Hadoop的好方法。種搜索引擎的,比如Amazon的A9和用于查找酒信息的AbleGrape垂直搜索引為一個并行數(shù)據(jù)處理引擎,它的表現(xiàn)非常突出。Hadoop最有趣的方面之一是MapandReduceWebWeb頁面作為輸當(dāng)前,Yahoo!HadoopLinux10,000多個內(nèi)核組成,有超過5PB字節(jié)的分布到各個DataNode。在它們的Web索引差不多有一萬億個AmazonElasticComputeCloud(EC2)構(gòu)建一個包含20個節(jié)點的虛擬集群。事實上,使用Hadoop和EC2在36個小時內(nèi)將4TB的TIFF圖像(包括405K大TIFF圖像,3.3MSGML405KXML文件)800KWebPNG圖像。這種處理稱為云計算,它是一種展示Hadoop的的獨特方式。 Hadoop的系通過從hadoophadoop-metrics文件中就可以知道hadoopGanglia是有支持的,而且hadoop自家的Chukwa。以下收集了一些比較好的資料以作參考:Chukwa在的應(yīng)用實 hadoop狀態(tài)分析系統(tǒng) hadoopganglia GangliaNagios,第1部分:Ganglia GangliaNagios,第2部分:使用Nagios hadoopwikimonitoring-hadoop-clusters-using-NameNode與JobTracker單點故障說瘓或者說主master癱瘓,整個Hadoop也就癱瘓了。對于主master的工作(如備份、重啟經(jīng)驗總結(jié)和注意事項(這部分是我在使用過程中花了一些時間走的彎路MasterSlave上的幾個conf配置文件不需要全部同步,如果確定都是通Master去啟動和關(guān)閉,那么Slave機(jī)器上的配置不需要去。但如果希望在任意一臺機(jī)Hadoop,那么就需要全部保持一致了。MasterSlave機(jī)器上的/etc/hosts中必須把集群中機(jī)器都配置上去,就算在各IPIP就不需要去配置Host,結(jié)果發(fā)現(xiàn)在執(zhí)行Reduce的時候總是卡住,在拷貝的時候就無法繼續(xù)下去,如果在新增了節(jié)點或者刪除節(jié)點的時候出現(xiàn)了問題,首先就去刪除Slave的hadoop.tmp.dir,然后重新啟動試試看,如果還是不行那就干脆把Master的hadoop.tmp.dir刪除(dfs上的數(shù)據(jù)也會丟失),Master的hadoop.tmp.dir,那么就需要重新namenode–format。Map任務(wù)個數(shù)以及Reduce任務(wù)個數(shù)配置。前面分布式文件系統(tǒng)設(shè)計提到一個文件默認(rèn)dfs.block.size應(yīng)該是64M,也就是說如果你放置到HDFS上的數(shù)據(jù)小于64,那么將只有一個Block,此時會被放置到某一個DataNode中,這個可以通過使用命令:hadoopdfsadmin–report就可以看到各個節(jié)點的情況。也可以直接去某一個DataNode查看 urrent就可以看到那些block了。Block的數(shù)量將會直接影響到Map的個數(shù)。當(dāng)然可以通過配置來設(shè)定Map和Reduce的任務(wù)個數(shù)。Map的個數(shù)通常默認(rèn)和HDFS需要處理的blocks相同。也可以通過配置Map的數(shù)量或者配置minimumsplitsize來設(shè)定,實 總的來說出了問題或者啟動的時候最好去看看日志,這樣心里有底。新增IP(master)conf/slaves文件。$cd$bin/hadoop(或者:bin/start-也可調(diào)用bin/start-balancer.sh命令執(zhí)行,也可加參數(shù)-threshold5threshold是平衡閾值,默認(rèn)是10%,值越低各節(jié)點越平衡,但消耗時間也更長。balancer也可以在有 job的cluster上運行,默認(rèn)必須確保slave的firewall已關(guān)閉確保新的slave的ip已經(jīng)添加到master及其他slaves的/etc/hostsmaster及其他slave的ip添加到新的slave的/etc/hosts注:在0.21中執(zhí)行bin/hadoop-daemon.shstartdatanode會提示該命令已,建議使用./hdfsdatanode命令,但是用后者反而會拋異常。刪除比如我原來有10個節(jié)點的集群.現(xiàn)在停掉2個,但數(shù)據(jù)不能丟失,只能讓它們的數(shù)據(jù)轉(zhuǎn)8這道過程就是mission.我們不能直接把2停掉,要在停掉之前確定要下架的機(jī)器首先namenode務(wù)HADOOP_HOME下建立一excludes件.它是一個文本,里面每行就是想要停掉的主機(jī)名或IP.這里excludes放在$HADOOP_HOME下 修改conf/hdfs-site.xml文件/ 強(qiáng)制重新加載配置然后你可以通過bin/hadoopdfsadmin-report就可以查看到類似這樣的信息:DatanodesDatanodesavailable:2(2total,0Name:missionStatus: missioninprogressConfiguredCapacity:37169479680(34.62GB)DFSUsed:94208(92NonDFSUsed:30112800768(28.04GB)DFSRemaining:7056584704(6.57GB)DFSUsed%:0%DFSRemaining%:Lastcontact:TueJul2615:31:17CSTName:missionStatus:ConfiguredCapacity:253935173632(236.5DFSUsed:94208(92NonDFSUsed:188234915840(175.31GB)DFSRemaining:65700163584(61.19GB)DFSUsed%:0%DFSRemaining%:Lastcontact:TueJul2615:31:16CST可以看到160在停止中( missionStatus: missioninprogress),執(zhí)行完成 missionStatus: 再次編輯excludes文件添加允許的節(jié)點到列表中(dfs.hosts里來直接去掉節(jié)點,不做數(shù)據(jù)副本備份(dfs.hosts里去掉主機(jī)名退服的逆操作——excludedfs.hostsission的節(jié)點的退服,也就是 issioninprogress的節(jié)點重新變Normal(webindatanode啟動失敗,各slave節(jié)點的namespaceIDs與masters /app/hadoop/tmp/dfs/data:namenodenamespaceID=308967713;datanodenamespaceID=113030094atorg.apache.hadoop.dfs.DataStorage.doTransition(DataStorage.java:281)atorg.apache.hadoop.dfs.DataNode.startDataNode(DataNode.java:230)atatorg.apache.hadoop.dfs.DataNoderun(DataNode.java:1146)atorg.apache.hadoop.dfs.DataNodemain(DataNode.java:1326)Workaround1:StartfromIcantestifythatthefollowingstepssolvethiserror,butthesideeffectswon’tmakeyouhappy(meneither).ThecrudeworkaroundIhavefoundisto:StoptheDeletethedatadirectoryontheproblematicDataNode:thedirectoryisspecifiedbydfs.data.dirinconf/hdfs-site.xml;ifyoufollowedthistutorial,therelevantdirectoryis/app/hadoop/tmp/dfs/dataReformattheNameNode(NOTE:allHDFSdataislostduringthisprocess!)RestarttheWhendeletingalltheHDFSdataandstartingfromscratchdoesnotsoundlikeagoodidea(itmightbeokduringtheinitialsetup/testing),youmightgivethesecondapproachatry.BigthankstoJaredStehlerforthefollowingsuggestion.Ihavenottesteditmyselfyet,butfeelfreetotryitoutandsendmeyourfeedback.Thisworkaroundis“minimallyinvasive”asyouonlyhavetoeditonefileontheproblematicDataNodes:StoptheEditthevalueofnamespaceIDin/current/VERSIONtomatchthevalueofthecurrentNameNodeRestarttheDataNodeIfyoufollowedtheinstructionsinmytutorials,thefullpathoftherelevantfilesDataNode:/app/hadoop/tmp/dfs/d (background:dfs.data.dirisbydefaultsetto${hadoop.tmp.dir}/dfs/data,andwesethadoop.tmp.dirinthistutorialto/app/hadoop/tmp).IfyouwonderhowthecontentsofVERSIONlooklike,here’soneof#contentsof/current/VERSIONCannotstarttasktrackerbecausejava.lang.RuntimeException:Notahost:portpair:需配置mapred.job.tracker屬性,在mapred-site.xml的configuration節(jié)點中配置(job-trackerhost為

vi/etc/security/limits.confsoftnofilehardnofile$cd$sudovi添 Toomanyfetch-要求本機(jī)ip要求要包含所有的服務(wù)器ip3mapreducereduce=0%conf/hadoop-env.sh中的export能夠啟動datanode,但無法,也無法結(jié)束的錯namenode用來存放NameNode持久名字空間及事務(wù)日志的本地文件系統(tǒng)路徑刪除,同時將各DataNode上的dfs.data.dir的路徑DataNode存放塊數(shù)據(jù)的本地文件系統(tǒng) 的那個版本(可以查看/home/hadoop/NameDurrent 上面記錄了版本信息),在重新格式化新的分布式系統(tǒng)文件時,最好先刪除NameData目java.io.IOException:Couldnotobtain java.lang.OutOfMemoryError:Javaheap出現(xiàn)這種異常,明顯是jvm內(nèi)存不夠得原因,要修改所有的datanode的jvmJava-Xms1024m-一般jvm的最大內(nèi)存使用應(yīng)該為總內(nèi)存大小的一半,我們使用的8G內(nèi)存,所以設(shè)置為解決 OutOfMemoryError問題<value>-Xmx800M-WiththerightJVMsizeinyourhadoop-site.xml,youwillhavetocopythistoallmaprednodesandrestartthecluster.-Hadoopwhileindexing.wheniusenutch1.0,getthisHadoopjava.io.IOException:Jobfailed!at我這兒出現(xiàn)的是outofmemory解決辦法是在給運行主類org.apache.nutch.crawl.Crawl加上參數(shù):- 部署Hadoop集群時,master與slave的均要關(guān)閉。關(guān)閉的根本目的也是為了圖與HDFS常用值:hdfs://[或IP地址]值應(yīng)該是唯一一個NameNode主服務(wù)器的地址。與 有關(guān)的地址及端口屬mapred.job.tracker的值應(yīng)該是唯一一個JobTracker主服務(wù)器的地址。附Hadoop歷Hadoop這個名字不是一個縮寫,它是一個虛構(gòu)的名字。該項目的創(chuàng)建者,DougCutting如此解釋Hadoop著可以大致從其名字猜測其功能,例如,jobtracker的任務(wù)就是MapReduce作業(yè)。從頭開始構(gòu)建一個網(wǎng)絡(luò)搜索引擎是一個雄心勃勃的目標(biāo),不只是要編寫一個復(fù)雜的、能夠抓取和索引將無法擴(kuò)展到擁有數(shù)十億網(wǎng)頁的網(wǎng)絡(luò)。在2003年的一篇描述分布式文件系統(tǒng)(簡稱GFS)的論文為他們提供了及時的幫助,文中稱正在使用此文件系統(tǒng)。GFS或類似的東西,可以解決他們在儲節(jié)點。在2004年,他們開始寫一個開放源碼的應(yīng)用,即Nutch的分布式文件系統(tǒng)(NDFS)。2004年,了,向全世界介紹了MapReduce。2005年初,Nutch的開發(fā)者在Nutch上有了Nutch中的NDFS和MapReduce實現(xiàn)的應(yīng)用遠(yuǎn)不只是搜索領(lǐng)域,在2006年2月,他們從Nutch轉(zhuǎn)移出來成為一個獨立的Lucene子項目,稱為Hadoop。大同一時間,DougCutting加入雅虎,Yahoo提供一個專門的團(tuán)隊和資源將Hadoop發(fā)展成一個可在網(wǎng)絡(luò)上運行的系統(tǒng)(見后文的補(bǔ)充材料)20082月,雅14章的案例研究和Hadoop有介紹,Hadoop的為)Web的PDF文件。這個過程歷時不到24小時,使用100臺機(jī)器運行,如果不結(jié)合亞馬遜的按小時的中聲稱,它的MapReduce實現(xiàn)執(zhí)行1TB數(shù)據(jù)的排序只用了68秒。在2009年5月,有宣稱Yahoo的團(tuán)隊使用Hadoop1TB的數(shù)據(jù)進(jìn)行排序只花了62秒時間。主要組成部分:Crawler,從因特網(wǎng)網(wǎng)頁;WebMap,構(gòu)建一個網(wǎng)絡(luò)地圖;Indexer,為最佳頁面構(gòu)建天。在2005年初,WebMap所用的基礎(chǔ)設(shè)施名為Dreadnaught,需要重新設(shè)計以適應(yīng)節(jié)點的需求。EricBaldeschwieler(Eric14)組建了一個小團(tuán)隊,我們開始設(shè)計并原型化一個新的框架(原型為GFS和與此同時,我們在關(guān)注Hadoop(當(dāng)時還是Nutch的一部分)及其進(jìn)展情況。20061月,雅虎聘請了Doug助真正的客戶使用這個新的框架,速度比原來預(yù)計的快許多。另一個明顯的優(yōu)點是Hadoop已經(jīng)開源,較了一個200個節(jié)點的研究集群,WebMap的計劃暫時擱置,轉(zhuǎn)而為研究用戶支持和發(fā)展Hadoop。Hadoop2004年--最初的版本(現(xiàn)在稱為HDFS和MapReduce)由DougCutting和MikeCafarella開始實施。2005年12月--Nutch移植到新的框架,Hadoop在20個節(jié)點上穩(wěn)定運行。20061月DougCutting加入--20062月--雅虎的網(wǎng)格計算團(tuán)隊采用Hadoop------0611月--600--071月--研究集群到900----0810月--10TB的數(shù)據(jù)--Hadoop的幾個主要子項:HDFSHadoop(DistributedFileSystem)HDFSHadoopDistributedFileHBase:類似BigTable的分布式NoSQL列數(shù)據(jù)庫。(HBase和Avro已經(jīng)于2010年5月成為頂級Apache項目[1])參考: /cluster配置對Hadoop的配置通過 下的兩個重要配置文件完成 src/core/core-default.xmlsrc/hdfs/hdfs-default.xmlandsrc/mapred/mapred-default.xml-只讀的默認(rèn)配置。conf/core-site.xmlconf/hdfs-site.xmlandconf/m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論