虛擬化與云計(jì)算課程實(shí)驗(yàn)報(bào)告-Hadoop平臺(tái)搭建_第1頁(yè)
虛擬化與云計(jì)算課程實(shí)驗(yàn)報(bào)告-Hadoop平臺(tái)搭建_第2頁(yè)
虛擬化與云計(jì)算課程實(shí)驗(yàn)報(bào)告-Hadoop平臺(tái)搭建_第3頁(yè)
虛擬化與云計(jì)算課程實(shí)驗(yàn)報(bào)告-Hadoop平臺(tái)搭建_第4頁(yè)
虛擬化與云計(jì)算課程實(shí)驗(yàn)報(bào)告-Hadoop平臺(tái)搭建_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..整理范本整理范本.整理范本虛擬化與云計(jì)算實(shí)驗(yàn)報(bào)告..整理范本整理范本.整理范本目錄一、實(shí)驗(yàn)?zāi)繕?biāo) 1二、實(shí)驗(yàn)內(nèi)容 1三、實(shí)驗(yàn)步驟 1四、實(shí)驗(yàn)遇到的問題及其解決方法 1五、實(shí)驗(yàn)結(jié)論 1..整理范本整理范本.整理范本一、實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)題目:配置和使用SAN存儲(chǔ)掌握在Linux上配置iSCSItarget服務(wù)的方法。實(shí)驗(yàn)題目:Hadoop&MapReduce安裝、部署、使用Hadoop-HDFS配置運(yùn)行MapReduce程序,使用MapReduce編程二、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)題目:配置和使用SAN存儲(chǔ)配置在Linux上iSCSI實(shí)現(xiàn)兩臺(tái)機(jī)器間的共享存儲(chǔ)。實(shí)驗(yàn)題目:Hadoop&MapReduce掌握在集群上(使用虛擬機(jī)模擬)安裝部署Hadoop-HDFS的方法。掌握在HDFS運(yùn)行MapReduce任務(wù)的方法。理解MapReduce編程模型的原理,初步使用MapReduce模型編程。三、實(shí)驗(yàn)步驟及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)題目:配置和使用SAN存儲(chǔ)在實(shí)驗(yàn)1中我作為主機(jī)提供共享存儲(chǔ)空間,實(shí)驗(yàn)地點(diǎn)是在機(jī)房,但是由于我當(dāng)時(shí)沒有截圖所以回寢室在自己的電腦上重做,以下為主機(jī)步驟:1.1 確定以root身份執(zhí)行以下步驟sudosu–..整理范本整理范本.整理范本1.2 安裝iSCSITarget軟件1.3 修改/etc/default/iscsitarget ISCSITARGET_ENABLE=true1.4 創(chuàng)建共享存儲(chǔ) 共享存儲(chǔ)可以是logicalvolumes,imagefiles,harddrives,harddrivepartitionsorRAIDdevices 例如使用imagefile的方法,創(chuàng)建一個(gè)10G大小的LUN: ddif=/dev/zeroof=/storage/lun1.imgbs=1024kcount=10240..整理范本整理范本.整理范本修改/etc/iet/ietd.conf添加: Target.example:storage.lun1IncomingUser[username][password]OutgoingUserLun0Path=/storage/lun1.img,Type=fileioAliasLUN1#MaxConnections6 1.6 修改/etc/iet/initiators.allow 如果只允許特定IP的initiator訪問LUN,則如下設(shè)置 .example:storage.lun100 如果任意initiator均可以訪問,則: ALLALL..整理范本整理范本.整理范本 1.6 啟動(dòng)/重啟動(dòng)iSCSItarget /etc/init.d/iscsitargetstart /etc/init.d/iscsitargetrestart實(shí)驗(yàn)題目:Hadoop&MapReduce..整理范本整理范本.整理范本安裝JDK——在實(shí)驗(yàn)中安裝為OpenJDK6Runtime安裝openssh-server,命令為:sudoapt-getinstallopenssh-server,并檢查sshserver是否已經(jīng)啟動(dòng):ps-e|grepssh,如果只有ssh-agent那ssh-server還沒有啟動(dòng),需要/etc/init.d/sshstart,如果看到sshd那說明ssh-server已經(jīng)啟動(dòng)了。免密碼ssh設(shè)置,確認(rèn)能否不輸入口令就用ssh登錄localhost:sshlocalhost如果不輸入口令就無法用ssh登陸localhost,執(zhí)行下面的命令:$ssh-keygen-trsa-f~/.ssh/id_rsacat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys再次執(zhí)行sshlocalhost,完成后請(qǐng)登入確認(rèn)不用輸入密碼..整理范本整理范本.整理范本安裝Hadoop解壓Hadoop安裝包到安裝目錄,在本實(shí)驗(yàn)中我新建了一個(gè)用戶hadoop并把hadoop解壓到home/hadoop文件夾下,在偽分布模式下使用的版本為0.20.203,在分布模式下因?yàn)橐cEclipse兼容所以最終使用版本為0.20.2,下面部分截圖為版本為0.20.203。并編輯conf/hadoop-env.sh,將JAVA_HOME設(shè)置為Java安裝根路徑運(yùn)行運(yùn)行bin目錄下的hadoop,如顯示hadoop腳本的使用文檔,說明安裝已經(jīng)完成。如下圖所示:..整理范本整理范本.整理范本安裝部署單機(jī)偽分布式模式Hadoop-HDFSHadoop可以在單節(jié)點(diǎn)上以偽分布式模式運(yùn)行。編輯/conf/core-site.xml<configuration><property><name></name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/tmp/hadoop/hadoop-${}</value></property></configuration>..整理范本整理范本.整理范本編輯/opt/hadoop/conf/hdfs-site.xml<configuration><property><name>dfs.replication</name><value>1</value></property></configuration>編輯/opt/hadoop/conf/mapred-site.xml<configuration><property><name>mapred.job.tracker</name><value>localhost:9001</value>..整理范本整理范本.整理范本</property></configuration>格式化HDFSbin/hadoopnamenode–format啟動(dòng)Hadoop,啟動(dòng)后可使用命令jps查看已啟動(dòng)進(jìn)程,觀察是否namenode、datanode已啟動(dòng),關(guān)閉所有服務(wù),使用命令stop-all.sh,bin/start-all.sh瀏覽NameNode和JobTracker的網(wǎng)絡(luò)接口,地址默認(rèn)為:NameNode-http://localhost:50070/JobTracker-http://localhost:50030/..整理范本整理范本.整理范本下面嘗試在單機(jī)偽分布模式下運(yùn)行wordcount樣例程序?qū)⑤斎胛募截惖椒植际轿募到y(tǒng)bin/hadoopfs-puthome/lee/桌面testfileinput運(yùn)行Hadoop自帶的wordcount例子bin/hadoopjarhadoop-examples-.jarwordcountinputoutput..整理范本整理范本.整理范本將輸出文件從分布式文件系統(tǒng)拷貝到本地文件系統(tǒng)查看bin/hadoopfs-getoutput/home/lee/文檔cat/home/lee/文檔/output/*安裝部署多機(jī)Hadoop-HDFS這個(gè)部署多機(jī)的實(shí)驗(yàn)在實(shí)驗(yàn)室沒有做完,最后實(shí)在宿舍完成的,節(jié)點(diǎn)為兩個(gè),使用系統(tǒng)為wubi安裝的Ubuntu,所以不需要橋接方式(因?yàn)橛泄潭↖P),以下步驟為我做為Master時(shí)的實(shí)驗(yàn)截圖:本機(jī)名為node1,另外一臺(tái)機(jī)器為node2,兩臺(tái)機(jī)器均建立一個(gè)名為hadoop的管理員用戶用于統(tǒng)一部署安裝hadoop。編輯文件/etc/hosts..整理范本整理范本.整理范本ubuntu替換為node1編輯/etc/hostname文件刪除該文件的所有內(nèi)容,添加node1運(yùn)行命令hostnamenode1指定IP地址編輯文件/etc/network/interfacesautoeth0ifaceeth0inetstatic..整理范本整理范本.整理范本address96netmask重啟網(wǎng)絡(luò)服務(wù)sudo/etc/init.d/networkingrestart查看IP地址ifconfig修改/etc/hosts文件node1中:96node13node2node2中:96node13node2..整理范本整理范本.整理范本配置從node1無需輸入密碼ssh登錄node1、node2,命令如下:首先在node1、node2下建立home/hadoop/.ssh文件夾在node1(master)上:$ssh-keygen-trsa $cat.ssh/id_rsa.pub>>.ssh/authorized_keys這兩行命令生成密鑰并將公鑰導(dǎo)出到authorized_keys中,然后將此文件拷貝到node2(slaves)中的相同文件夾下,因?yàn)橥ㄟ^網(wǎng)絡(luò)命令拷貝比較困難所以我在這里用U盤拷貝的,之后就可以成功無密碼登錄node2..整理范本整理范本.整理范本編輯/conf/core-site.xml//此處為了方便查找我更改了hadoop.tmp.dir的文件目錄,改為/home/hadoop/tmp<configuration><property><name></name><value>hdfs://node1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/tmp</value></property></configuration>編輯/opt/hadoop/conf/hdfs-site.xml,其中//這里我們將dfs.data.dir改為/home/hadoop/data//將.dir的默認(rèn)文件夾改為/home/hadoop/name<configuration><property><name>.dir</name><value>/home/hadoop/name</value></property><property><name>dfs.data.dir</name><value>/home/hadoop/data</value></property><property>..整理范本整理范本.整理范本<name>dfs.replication</name><value>2</value></property></configuration>編輯/opt/hadoop/conf/mapred-site.xml<configuration><property><name>mapred.job.tracker</name><value>node1:9001</value></property></configuration>配置jobtrackermasters文件配置如下:node1slaves文件配置如下:node2在主節(jié)點(diǎn)編輯hadoop的配置之后,將其拷貝到node2的對(duì)應(yīng)目錄(U盤)格式化HDFSbin/hadoopnamenode-format..整理范本整理范本.整理范本啟動(dòng)Hadoop,啟動(dòng)后可使用命令jps查看namenode和datanode上已啟動(dòng)進(jìn)程,觀察是否namenode、datanode已啟動(dòng),關(guān)閉所有服務(wù),使用命令stop-all.sh,再分別按順序在node1和node2上開啟namenode(node1)、datanode(node2)、jobtracker(node1)、tasktracker(node2),注意我在此處只能分別開啟,如果使用start-all.sh全部自動(dòng)開啟的話啟動(dòng)所有節(jié)點(diǎn)正常但是無活節(jié)點(diǎn)可用,可能與啟動(dòng)順序有關(guān),成功之后截圖如下:瀏覽NameNode和JobTracker的網(wǎng)絡(luò)接口,地址默認(rèn)為:NameNode-http://node1:50070/JobTracker-http://node1:50030/..整理范本整理范本.整理范本安裝eclipse和hadooppluginforeclipse這里經(jīng)過反復(fù)測(cè)試發(fā)下到現(xiàn)在為止只使用了eclipse3.3和hadoop0.20.2-plugin插件可以配置成功,最新版本均不能配置成功。 具體做法是下載eclipse解壓之后將hadoop安裝路徑下的contrib的下的jar插件復(fù)制到eclipse文件夾下的plugins文件夾下即可在eclipse下成功安裝插件。..整理范本整理范本.整理范本新建MapReduce工程,并在eclipse中下方的Map/ReduceLocations下新建剛剛添加好的node1并配置如下:..整理范本整理范本.整理范本最后將寫好的測(cè)試文件testfile上傳到DFSLocations分布式文件系統(tǒng)中,并設(shè)置好文件的輸入輸出參數(shù)(如下圖,輸入輸出文件/文件夾均在DFS中)。這里我根據(jù)要求將老師給的WordCount.java做了一定的修改,具體來說就是將第一個(gè)Job輸出的文本文件作為輸入,再次讀入并交換<keys,values>為<values,keys>(用以是以詞頻為關(guān)鍵字并以單詞為values,這樣就能遍歷統(tǒng)一詞頻的所以單詞并以字符串的形式拼接起來,但是跟最后的要求還差一點(diǎn)就是因?yàn)闀r(shí)間的關(guān)系我沒有實(shí)現(xiàn)一個(gè)比較函數(shù)的類并設(shè)置所以最后的排序是默認(rèn)的從小到大,而不是從大到?。┫旅娼貓D如下:修改過的代碼如下:importjava.io.IOException;importjava.util.StringTokenizer;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.conf.*;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.Mapper;importorg.apache.hadoop.mapreduce.Reducer;..整理范本整理范本.整理范本importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;importorg.apache.hadoop.mapreduce.lib.input.TextInputFormat;importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;importorg.apache.hadoop.mapreduce.lib.output.TextOutputFormat;publicclassWordCount{ publicstaticclassMapextendsMapper<LongWritable,Text,Text,IntWritable>{ privatefinalstaticIntWritableone=newIntWritable(1); privateTextword=newText(); publicvoidmap(LongWritablekey,Textvalue,Contextcontext) throwsIOException,InterruptedException{ Stringline=value.toString(); StringTokenizertokenizer=newStringTokenizer(line); while(tokenizer.hasMoreTokens()){ word.set(tokenizer.nextToken()); context.write(word,one); } } } publicstaticclassReduceextendsReducer<Text,IntWritable,Text,IntWritable>{ publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext) throwsIOException,InterruptedException{ intsum=0; for(IntWritableval:values){ sum+=val.get(); } context.write(key,newIntWritable(sum)); } } publicstaticclasssortMapextendsMapper<LongWritable,Text,Text,Text>{ privateTextwordcount=newText(); privateTextword=newText(); publicvoidmap(LongWritablekey,Textvalue,Contextcontext) throwsIOException,InterruptedException{ Stringline=value.toString(); StringTokenizertokenizer=newStringTokenizer(line); while(tokenizer.hasMoreTokens()){ word.set(tokenizer.nextToken()); wordcount.set(tokenizer.nextToken());..整理范本整理范本.整理范本 context.write(wordcount,word); } } } publicstaticclasssortReduceextendsReducer<Text,Text,Text,Text>{ publicvoidreduce(Textkey,Iterable<Text>values,Contextcontext) throwsIOException,InterruptedException{ Stringwordline=""; for(Textval:values){ wordline+=val+","; } context.write(key,newText(wordline)); } } publicstaticvoidmain(String[]args)throwsException{ Configurationconf=newConfiguration(); Jobjob=newJob(conf,"wordcount"); job.setJarByClass(WordCount.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(Map.class); job.setReducerClass(Reduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath(job,newPath(args[0])); FileOutputFormat.setOutputPath(job,newPath(args[1])); job.waitForCompletion(true); JobsortJob=newJob(conf,"sortword"); sortJob.setJarByClass(WordCount.class); sortJob.setOutputKeyClass(Text.class); sortJob.setOutputValueClass(Text.class); ..整理范本整理范本.整理范本 sortJob.setMapperClass(sortMap.class); sortJob.setReducerClass(sortReduce.class); sortJob.setInputFormatClass(TextInputFormat.class); sortJob.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath(sortJob,newPath(args[1]+"/part-r-00000")); FileOutputFormat.setOutputPath(sortJob,newPath(args[1]+"/result")); sortJob.waitForCompletion(true); }}四、實(shí)驗(yàn)遇到的問題及其解決方法iSCSItarget實(shí)驗(yàn)比較簡(jiǎn)單,所遇到的問題不多,主要是當(dāng)時(shí)對(duì)于vim的操作上有一些不熟練所以耽誤了一些時(shí)間;其次就是剛開始時(shí)NAT而不是橋接模式致使client連接不上我的機(jī)器浪費(fèi)了一些時(shí)間,總體來說實(shí)驗(yàn)比較簡(jiǎn)單;此次實(shí)驗(yàn)中的問題主要集中在Hadoop/MapReduce這個(gè)實(shí)驗(yàn)上,程序的編寫上不是特別困難,參照著網(wǎng)上的講解和HadoopAPI可以自己摸索個(gè)大概并修改老師給的程序;主要是在配置ssh無密碼連接以及之后的Hadoop服務(wù)啟動(dòng)及重啟之后再次開啟服務(wù)上出現(xiàn)了一些問題,下面挑選列舉如下:在分布模式下試圖無密碼登錄node2的時(shí)候失敗,之后按照網(wǎng)上教程嘗試嘗試用ssh中的scp命令傳輸文件失?。唤鉀Q方法:出現(xiàn)問題的主要原因是因?yàn)楫?dāng)時(shí)對(duì)scp命令以及相關(guān)的參數(shù)不太了解,所以當(dāng)時(shí)著急解決問題所以利用的是“土方法”——U盤拷貝至slaves機(jī)并覆蓋原有文件。之后實(shí)驗(yàn)完成之后又嘗試了用scp在兩臺(tái)機(jī)器上拷貝過文件并成功。首次無密碼ssh連接成功,并在網(wǎng)頁(yè)里顯示正常(有活節(jié)點(diǎn)),但是在使用Eclipse3.7和Hadoop-plugin.020.203嘗試登錄DFS分布式文件系統(tǒng)時(shí)顯示無法連接;解決方法:經(jīng)查此為版本問題,可能是由于Eclipse的版本太新而Hadoop版本沒跟上所致;最后使用網(wǎng)上有人運(yùn)行成功的eclipse3.3和Hadoop-0.20.2可以運(yùn)行成功,正確添加node1節(jié)點(diǎn);頭一天登錄成功,第二天嘗試再此登錄的時(shí)候雖然顯示各節(jié)點(diǎn)服務(wù)啟動(dòng)正常,但是在Eclipse中顯示無法進(jìn)入DFS文件系統(tǒng),查看logs中的Namenode記錄發(fā)現(xiàn)報(bào)錯(cuò)“couldonlybereplicatedto0nodes,insteadof1”;解決辦法:經(jīng)嘗試此為節(jié)點(diǎn)啟動(dòng)順序的問題,分別按順序在node1和node2上開啟namenode(node1)、datanode(node2)、jobtracker(node1)、tasktracker(node2),注意我在此處只能分別開啟,如果使用start-all.sh全部自動(dòng)開啟的話..整理范本整理范本.整理范本就會(huì)出現(xiàn)上述問題中的啟動(dòng)所有節(jié)點(diǎn)正常但是無活節(jié)點(diǎn)可用的情況。有時(shí)stop-all.sh之后再此format之后再次啟動(dòng)會(huì)發(fā)現(xiàn)Namenode(或Datanode)無法啟動(dòng)成功;解決辦法:此種錯(cuò)誤出現(xiàn)的原因有:(1)查看logs發(fā)現(xiàn)報(bào)錯(cuò)為“XXdoesnotexist”,說明我們?cè)谂渲胏ore-site.xml等文件中設(shè)置的文件夾路徑不對(duì)或文件夾不存在;(2)logs文件中提示“NameNodeisnotformatted”,即Namenode節(jié)點(diǎn)未成功格式化;(3)“Hadoop在格式化一個(gè)新的分布式文件系統(tǒng)時(shí),每個(gè)存儲(chǔ)的名字空間都對(duì)應(yīng)了建立時(shí)間的那個(gè)版本(可以查看/home/hadoop/name/current目錄下的VERSION文件,上面記錄了版本信息)”,因?yàn)橹貑⒐?jié)點(diǎn)后數(shù)據(jù)更新導(dǎo)致了Namenode和Datanode版本不一致;針對(duì)以上三種情況的解決方案為:(1)根據(jù)logs報(bào)錯(cuò)信息重新mkdir;(2)重新hadoopnamenode–format;(3)如上所述此為上一次的文件未清理導(dǎo)致文件不匹配的出現(xiàn)的錯(cuò)誤導(dǎo)致節(jié)點(diǎn)服務(wù)關(guān)閉,這時(shí)我們要分別刪除配置文件中設(shè)置的hadoop.tmp.dir、.dir、dfs.data.dir的文件夾下的目錄清空并再此format即可;當(dāng)然這不是最好的辦法因?yàn)檫@樣做會(huì)讓上次上傳的文件刪除消失;更好的解決辦法還在嘗試;五、實(shí)驗(yàn)結(jié)論 總體來說這次實(shí)驗(yàn)其實(shí)還是比較有趣的,有別于以前大多數(shù)時(shí)候做的純編程,這次實(shí)驗(yàn)主要是實(shí)踐環(huán)境上的配置,使用的技術(shù)也比較新;當(dāng)然做的過程中比較苦惱,因?yàn)?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論