分布式實驗報告_第1頁
分布式實驗報告_第2頁
分布式實驗報告_第3頁
分布式實驗報告_第4頁
分布式實驗報告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

南京財經大學課程論文考試(封面)2014——2015第2學期課程名稱:分布式計算綜合實驗任課教師:錢鋼學生姓名:鄭雅雯班級:計算機1202學號:2120122349論文題目:linu環境下的hadoop應用內容摘要:本文就介紹了linux環境下的分布式計算平臺Hadoop的部署配置及應用編程關鍵詞:linuxHadoop部署應用簡介hadoopH是Apache軟件基金會旗下的一個開源分布式計算平臺對于 Hadoop的集群來講,可以分成兩大類角色: Master和Salve。分布式集群的主要任務包括了:1、 分布式存儲系統HDFS(HadoopDistributedFileSystem)分布式存儲系統,它是由一個NameNode和若干個DataNode組成的。其中NameNodd乍為主服務器,管理文件系統的命名空間和客戶端對文件系統的訪問操作; 集群中的DataNode管理存儲的數據??蓪DFS看成一個容量巨大、具有高容錯性的磁盤,提供了高可靠性、高擴展性和高吞吐率的數據存儲服務。2、 資源管理系統YAR(YetAnotherResourceNegotiator),它是Hadoop2.0新增系統,負責集群的資源管理和調度, 使得多種計算框架可以運行在一個集群中,負責集群資源的統一管理和調度3、 分布式計算框架MapReduce它具有易于編程、高容錯性和高擴展性等優點。MapReduce框架是由一個單獨運行在主節點上的 JobTracker和運行在每個集群從節點的TaskTracker共同組成的。主節點負責調度構成一個作業的所有任務,這些任務分布在不同的從節點上。主節點監控它們的執行情況,并且重新執行之前的失敗任務;從節點僅負責由主節點指派的任務。當一個 Job被提交時,JobTracker接收到提交作業和配置信息之后,就會將配置信息等分發給從節點,同時調度任務并監控TaskTracker的執行。NoSQL數據庫指的是不使用關系模型存儲數據的一種新型數據庫。能解決傳統關系數據庫不能解決的高并發讀寫、高可擴展性和高可用性的問題。 NoSQL數據存儲不需要固定的表結構,通常也不存在連接操作。在大數據存取上具備關系型數據庫無法比擬的性能優勢Jdk配置將jdk-7u75-linux-i586.tar.gz 解壓到本地目錄,并配置java環境變量(java-version)1、獎tar包解壓到/usr文件夾2、jdk1.7tar-zxvfjdk-7u75-linux-i586.tar.gz-C/usr2、jdk1.7mvxxxxjdk1.7■?■?drwxr-xr-x.亠32"LJU"rootrootJWT4096IHBUI1AprC.dV? 1dL12:591IMWWV|af 4VaVIUUHh fcuincludedrwxr-xr*x、3rootroot4696Aprgee:i2javadrwxr'xr-x.8uucp1434096DecIB18:32jdkl.7-rv-r-r--.1rootroot125239296Apr121:34jdk-7u75-linux-i5S6.rpn-rw-r-r--.1rootroot143413084Apr200:18jdk-7u75-linuK-1566.tar.gzdr-xr-xr*j(.99rootroot36864Apr2364:33libdrwxr'xr-x.22rootroot1228BApr2964:33libexecdrwxr-xr-x.11rootroot4696Aprg12:32Localdr-xr-xr-x.2rootroot1228BApr2964:33sbin173rootroot4696Apr9ea:usharedr^xr-xr-x.Arootroot4096Apr912:32arcIrwxnjxrwx.1rootrootieAprg12:32tmp->B/vat^p3、修改配置文件vi/etc/profile

協/etc/protlleexportJAVAHOHE-/usr/jdkl47exportJRE_HOME=/USr/jdkl,7/jreexportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/llb:SJRE_HOME/libexportPATH=$JAVA_HOME/bin:SJREHOME/bin:SPATH:$HOME/binHadoop單機版部署1、解壓hadoop安裝包到/usr/hadoop2.6chown-Rabc:abchadoop2.6*Hadoop單機版部署1、解壓hadoop安裝包到/usr/hadoop2.6chown-Rabc:abchadoop2.6*IIMInAIA■A■ £,IVWLdrwxr-xr-x.IQabc

-rw-r--r-. 1abc2、設置ssh免密碼登錄(1)、生成其無密碼密鑰對ssh-keygen-trsa-P'',并把文件夾的讀權限分配給普通用戶IvVkabcabc4096195257604ZJ#丄“ VXXApr2904:13Mar2905:41id_rsa禾口id_rsa.pubU|IFGmhadoop-2.6.ehadoop-2.6.6.tar.gz[abc@ZHYWusr]$ssh-keygen-trsa*Pabcabc1abcabc1dbcabcabcabc1abcabc1dbcabc1abcabcsshKIEnterfileinwhichtosavethekey(/horne/abc/.ssh/idrsa):/home/abc/.ssh/idrsaalreadyexists.hasbeensavedin/home/abc/.hasbeensavedin/home/abc/.ssh/idrsa.beensavedin/home/abc/.ssh/idrsa^pub,is:YouridentificationYourpublickeyhasThekeyfingerprint22:0b:68:2d:02:5a:65:37:bf:2d:47:e6:d0:?f:5d:baabc(aZHYWThekey'srandomartimageis:+--[RSA2048]Ioo |o.、id_rsa.pub追加到授權的key里cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys[aOC(dZHYW[abc@ZH¥Wtotal16-rw [aOC(dZHYW[abc@ZH¥Wtotal16-rw ■rw■「八廣八?m「…「八[abcHZHYW~jsco/nome/anc/^ssn.ssh]$U20:44authori2ed_lkeys17:22idrsa-17:22idrsa.pub21:05knownhosts788May191675May23390Nay281182May19驗證是否設置成功sshlocalhost[abc@ZHYW~]$cat'/,s5h/id_rsa,pub? .ssh/authorizedkeys[abc(3ZHYWT$sshlocalhcstLastlogin:ThuMay2B17:25:4?2G15fromlocalhost[abc@ZHYW*]$3、修改4個.xml文件[abc(3ZHYWhadoop]*cd/usr/hadoop-2.6.9/etc/hadoop/[abc(3ZHYWhadoop]$lltotal152-rw-r-■r--.1abcabc4436Nov132014capacity-schedule「?xml*rw-r*亠「」?1abcabc1335Nov132014configuration.xsl-rw-r--r--?1abcabc318Nov1321314containsr-executor.cfg-rw-r-1abcabc962May1920:50core-site.xml-rw-r-1abcabc3670Nov132014hadoop-env.cmd-rvi-r-訂一?1abcabc4224Apr2519:41hadoop-env.sh*rw-r-■r*-.1abcabc2598Nperties”「一?1abcabc2490Nperties-rw-r-*r--?1abcabc9683Nov132014hadoop-policy.xml-rw-r-”「八.1abcabc1155May1920:56hdfs-site.xml-w-「一?1abcabc1449NOV132014httpfs-env.shr-1abcdbc1657Nperties*nv-r*亠「」?1abcabc21NOV132014httpfs-signature-secret-rw-r--r--.1abcabc620NOV132014httpfs-site.xml1abcabc3523NOV132014kms-acls.xml-rw-r--r--.1abcabc1325Nov132014kms-env.sh■w-r—.1abcabc1631NOV132014perties-rw-r--1abcabc5511Nov132014kms-site.xml1abcabc11291Nov132014Lperties-wr--?1abcabc938Nov132014mapred-env,cmd-rw-r-”「八.1abcabc1383Nov132014mapred-env.sh*rw-r*亠「一?1abcabc4113Nov132014mapred-queues.xml.template-rw-r--r--.1abcabc844May1920:別mapred-siterxml-rw-r*1abcabc10Nov132014slaves、core-site.xml<property><name>fs.default.name</name〉<value>hdfs://hadoop:8020</value></property><property><name>hadoop.tmp.dir</name〉<value>/home/zpc/hadoop/mytmp</value></property>、hdfs-site.xml<property><name>dfs.replication</name><value>1</value></property><property>

<name>dfs.namenode.name.dirv/name〉<value>/home/abc/hadoop/mytmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name〉<value>/home/zpc/hadoop/mytmp/dfs/data</value></property>、mapred-site.xml<property><name>mapreduce.framework.name</name〉<value>yarn</value></property>、yarn-site.xml<property><name>yarn.nodemanager.aux-services</name〉<value>mapreduce_shuffle</value></property>6、 格式化hdfs在hadoop/bin/目錄下執行./hadoopnamenode-formathadoop7、 啟動HDFS和YARN、在sbin目錄下,執行start-dfs.sh 這個腳本文件啟動HDFS./start-dfs.sh[abc^ZHYWsbin]$./start-dfs.sh15/05/2817:36:55WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicableStartingnamenodeson[ZHYW]ZHYW:startingnamenode,loggingto/usr/hadoop-2.6.0/logs/hadoop-abc-namenode-ZHYW.outlocalhost:startingdatanode,loggingto/usr/hadoop-2.6.9/logs/hadoop-abc-datan□de-ZHYW.outStartingsecondarynamenodes[0.0.9.S]O.&.S.6:startingsecandarynamenoderloggingto/usr/hadoop-2.6.9/logs/hadoop-abc-secondarynamenode-ZHYW.out15/05/28L7:3S:30WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswhereapplicable[abc^ZHYWsbin]$jps30S2DataNode2990NameNode3239SecondaryNameNode3377Jps[abc@ZHYNsbin]$|、再執行sbin下的start-yarn.sh 這個腳本文件啟動 yarn./start-yarn.sh8、輸入jps檢測是否全部啟動IldULtgiNTW5U1IIJ./bLdrL-^dril.bllstartingyarndaemonsstartingresourcemanager,loggingto/usr/hadocp-2,6r6/logs/yarn-abc-resourcemanager-ZHVW.outlocalhost:startingnodemandger,loggingto/usr/hadoop^Zn5r0/logs/yarn-abc-nodemanager-ZHYW.out(abc^ZHYWsbiR]$jps3437ResourceManager3082DataNode2990NameNode3239SecondaryNameNode3536NodeManager3583Jps[abc^ZHYWsbin]S|四、程序設計1、設計目的對輸入文件中數據進行就算學生平均成績。 輸入文件中的每行內容均為一個學生的姓名和他相應的成績,每門學科為一個文件。輸出學生姓名和平均成績。2、設計思路程序包括兩部分的內容: Map部分和Reduce部分,分別實現了 map和reduce的功能。Map處理的是一個文本文件,文件中存放的數據時每一行表示一個學生的姓名和他相應一科成績。Map階段將數據集切割成小數據集,每一個數據偏將由一個 Mapper負責處理,并將一個數據流解析成 <key,value>對,然后分發到Reducer。在Reducer中進行合并的時候,有相同key的鍵值對則送到同一個 Reducer上。Reducer進行相應運算并統計結果輸出到文件中。3、程序分析(1)、main函數publicstaticvoidmain(String[]args)throwsException{Configurationconf=newConfiguration();String[]ioArgs=newString[]{"score_in","score_out"};String[]otherArgs=new GenericOptionsParser(conf,ioArgs).getRemainingArgs();if(otherArgs.length!=2){System.err.println("Usage:ScoreAverage<in><out>");System.exit(2);}Jobjob=newJob(conf,"ScoreAverage");job.setJarByClass(Score.class);//設置MapCombine和Reduce處理類job.setMapperClass(Map.class);job.setCombinerClass(Reduce.class);job.setReducerClass(Reduce.class);// 設置輸出類型job.setOutputKeyClass(Text.class);job.setOutputValueClass(lntWritable.class);// 將輸入的數據集分割成小數據流

job.setInputFormatClass(TextlnputFormat.class);//提供一個RecordWriter的實現,負責數據輸出

job.setOutputFormatClass(TextOutputFormat.class);// 設置輸入和輸出目錄FileInputFormat.addInputPath(job,newPath(otherArgs[0]));FileOutputFormat.setOutputPath(job,newPath(otherArgs[1]));System.exit(job.waitForCompletion(true)?0:1);}、map函數Text,context)publicstaticclassMapextends Mapper<LongWritable,Text,context)Text,IntWritable>{//實現map函數publicvoidmap(LongWritable key,Textvalue,ContextthrowsIOException,1nterruptedException{Stringline=value.toString();//將輸入的數據首先按行進行分割StringTokenizertokenizerArticle=newStringTokenizer(line,"\n”);//分別對每一行進行處理while(tokenizerArticle.hasMoreElements()){// 每行按空格劃分StringTokenizertokenizerLine=newStringTokenizer(tokenizerArticle.nextToken());StringstrName=tokenizerLine.nextToken();//學生姓名部分StringstrScore=tokenizerLine.nextToken();//成績部分Textname=newText(strName);intscoreInt=Integer.parseInt(strScore);// 輸出姓名和成績context.write(name,newIntWritable(scoreInt));}}}、reduce函數publicstaticclassReduceextends Reducer<Text,IntWritable,Text,IntWritable>{//實現reduce函數publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext)throwsIOException,InterruptedException{intsum=0;intcount=0;

Iterator<lntWritable>iterator=values.iterator();while(iterator.hasNext()){sum+=iterator.next().get();//計算總分count++;〃 統計總的科目數}intaverage=(int)sum/count;//計算平均成績context.write(key,newIntWritable(average));44、輸入文件[abctaZHiwslice68bob93mary85[abc(aZH¥Walite87bob89marySG[abc^ZHYWalice79bob83marv94hadoop-2,6.Q]$hadoop^2.6.0]shadoop-2.6.0]$catcatcatchinese.txtenglish.txt[abctaZHiwslice68bob93mary85[abc(aZH¥Walite87bob89marySG[abc^ZHYWalice79bob83marv94hadoop-2,6.Q]$hadoop^2.6.0]shadoop-2.6.0]$catcatcatchinese.txtenglish.txtmatlh.txt5、輸出結果/usr/hadoop-2.6.0/usr/hadoop-2.6.0H[abc@ZHYWhadoop<2.fi.O]$UItotal64drwxr-xr-x.2abcabc4096NOV132014bindrwxr-xr-X.3abcabc4Q96Apr2905:12etcdrwxr-xr-X?2abcabc4096NOV132014includedrvrxr-xr-X.3abcabc4096Nov132014libdrwxr-xr-X?2abcabc4696NOV132014libexec-rw-r--r-1abcabc15429Nov132014LICENSE.txtdrwxr-xr-X?3abcabc4096May2817:40Logs-rw-r--r-1abcabcieiNov132014NOTICE.txt-rw-1abcabc1366Nov132014README-txtdrvxr-xr-x.2abcabc4Q96Nov132914sbindrvxrwxr'X?2abcabc4096May2904:IQscore_indrvxrwxr-x.2abcabc4096May2904:12scoreoutdrwxr-xr'X?4abcabc4096Nov132014share[abc@ZHYWhadoop-2.6.0]$|

[abc(aZHYWh白doop-2*6.?]$cd/usr/hadoop'2.6.0/score_out/[abc@ZHYWscore_out]$lltotal4-rw*rw-r-*.1abcabc26May2904:12part-9060-rw-rw-r--?1abcabc0May2904:16part'QQee-[abc^ZHYWscore_out]$catpart*9069alice78bob88mary88rahrr37MYWqrnrpnut1<五、 課程總結通過本次課程的學習, 我了解了hadoop分布式計算的原理,掌握了一些基本的linux編程、linu系統中hadoop的部署和HBASE的原理。學習實踐的過程中遇到了許多問題,通過自己的探索和老師同學的幫助,也一一解決了,同時,在不斷的發現問題和解決問題中也提升了自己的能力,感到獲益匪淺。解決問題的過程都不會是一帆風順的, 在一次次的嘗試中會不斷遇到更多的問題, 但靜下心來仔細思考,這不僅是對思維也是對性情的磨練,獲得的不僅是在能力上的提升,更重要的是能讓我更冷靜的去對待生活中遇到的問題,更勤于思考,沉著應對。六、 附錄ackagecom.hebut.mr;importjava.io.IOException;importjava.util.Iterator;importjava.util.StringTokenizer;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.lntWritable;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;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;importorg.apache.hadoop.util.GenericOptionsParser;publicclassScore{publicstaticclassMapextendsMapper<LongWritable,Text,Text,IntWritable>{II實現map函數publicvoidmap(key,Textvalue,Contextcontext)throwslOException.InterruptedException{Stringline=value.toString();II 將輸入的數據首先按行進行分割StringTokenizertokenizerArticle=newStringTokenizer(line,"\n");// 分別對每一行進行處理while(tokenizerArticle.hasMoreElements()){// 每行按空格劃分StringTokenizertokenizerLine=newStringTokenizer(tokenizerArticle.nextToken());StringstrName=tokenizerLine.nextToken();//學生姓名部分StringstrScore=tokenizerLine.nextToken();//成績部分Textname=newText(strName);intscoreInt=Integer.parseInt(strScore);//輸出姓名和成績context.write(name,newIntWritable(scorelnt));}}}publicstaticclassReduceextendsReducer<Text,IntWritable,Text,IntWritable>{//實現reduce函數publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontex

溫馨提示

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

評論

0/150

提交評論