




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
南京財經大學課程論文考試(封面)2014——2015第2學期課程名稱:分布式計算綜合實驗任課教師:錢鋼學生姓名:鄭雅雯班級:計算機1202學號:2120122349論文題目:linu環境下的hadoop應用內容摘要:本文就介紹了linux環境下的分布式計算平臺Hadoop的部署配置及應用編程關鍵詞:linuxHadoop部署應用一、 簡介hadoopH是Apache軟件基金會旗下的一個開源分布式計算平臺對于Hadoop的集群來講,可以分成兩大類角色:Master和Salve。分布式集群的主要任務包括了:1、 分布式存儲系統HDFS(HadoopDistributedFileSystern)分布式存儲系統,它是由一個NameNode和若干個DataNode組成的。其中NameNode作為主服務器,管理文件系統的命名空間和客戶端對文件系統的訪問操作;集群中的DataNode管理存儲的數據。可將HDFS看成一個容量巨大、具有高容錯性的磁盤,提供了高可靠性、高擴展性和高吞吐率的數據存儲服務。2、 資源管理系統YARN(YetAnotherResourceNegotiator),它是Hadoop2.0新增系統,負責集群的資源管理和調度,使得多種計算框架可以運行在一個集群中,負責集群資源的統一管理和調度3、 分布式計算框架MapReduce,它具有易于編程、高容錯性和高擴展性等優點oMapReduce框架是由一個單獨運行在主節點上的JobTracker和運行在每個集群從節點的TaskTracker共同組成的。主節點負責調度構成一個作業的所有任務,這些任務分布在不同的從節點上。主節點監控它們的執行情況,并且重新執行之前的失敗任務;從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接收到提交作業和配置信息之后,就會將配置信息等分發給從節點,同時調度任務并監控TaskTracker的執行。NoSQL數據庫指的是不使用關系模型存儲數據的一種新型數據庫。能解決傳統關系數據庫不能解決的高并發讀寫、高可擴展性和高可用性的問題oNoSQL數據存儲不需要固定的表結構,通常也不存在連接操作。在大數據存取上具備關系型數據庫無法比擬的性能優勢二、 Jdk配置將jdk-7u75Tinux-i586.tar.gz解壓到本地目錄,并配置java環境變量(java-version)1、獎tar包解壓到/usr文件夾tar-zxvfjdk-7u75Tinux-i586.tar.gz-C/usr2、將解壓后的文件更名為jdk1.7mvxxxxjdk1.7drwxr-sr-xdrwxr-xr-xdrwxr-xr-x-nt-r--r--drwxr-sr-xdrwxr-xr-xdrwxr-xr-x-nt-r--r---rw-「?-r--dr-xi-Kr-xdrwxr-xr-xrirvxr-xr-xdr-xr-sr-xdrvxr-Kr-xdrwxr-xr-xIrvxrwxrwx_L32UUJrootULFroot3rootrootBLucp1431rootroot1rootroot99rootroot22rootroot11rootroot2motroot173rootroot4rootroot1rootroot丄I』“j"ruuiciiu■ja ?i丄弼fjApr912:504^96Apr94895DecIB18:32L25239296Apr121:341434-13004Apr200:1830864Apr2勺04:3312288Apr2904:33W96Apr912:32L228SApr2904:334096Apr906:124S96Apr312:3213Apr912:32includejavajdkl.7jdk-7u75-linux-15 .rpnjdk-7u75-linux-15M.tar.gzlibli.l>execlocalsbinsharesrctun->H/Vcf/trc3、修改配置文件vi/etc/profile甜/etc/protilieexpo-tJAVA_H0ME=/usr/jdkl.7exportJRE_HOME=/usr/jdkl.7/jreexportCLASSPATH=.:^CLASSPATH:$JAVA_H0HEREHOHE/libexportPATH=JJAVA_HOME/bin:5JRE_HOHE/bin;$PATH;$H0HE/bin三、Hadoop單機版部署chown-Rabc:abchadoop2.6*IUIWAIchown-Rabc:abchadoop2.6*IUIWAIAIIA? £-IUULdrwxr-xr-x.ISabc-rw-r-r. 1abc17PLabc
abe"THJJU £.uJ丄2丄17PLabc
abe4096Apr2984:13hadoop-2.fi.0195257694Mar2995:41hadoop-2.fi.9.tar.gz2、設置ssh免密碼登錄、生成其無密碼密鑰對id_rsa和id_rsa.pubssh—keygen-trsa-P''|[abc(aZHYW ssh-keygen-trsa-PGeneratingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/home/abc/.ssh/idrsa):/home/abc/.ssh/id_rsaalreadyexists.Overwrite(y/n)?yYourjlM已ntlficationhasb已已nsavedin/home/abc/.ssh/idrsa.Yourpublickeyhasbeensavedin/home/abc/.ssh/idrsa.pub.Thekeyfingerprintis:22:flb:68:2d:02:5a:65:37:bf:2d:47:e6:de:7f:5d:baabc(2ZHYWThekey'srandomartimageis:+--[RSA2048]——+oo0.0...□+.血 B?Q.|+D.S+.0.0..0.0..E、id_rsa.pub追加到授權的key里cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys-rw -rw .1ab<abc789May1929:44authorized-rw ?1abcabc1675May2817:22idrsa-rw-r-r--.iabcabc390May2817:22idrsa.pub-rw-r-r--.1abcabc1182May1921:05krownhosts[abc^ZHYW.sshB1Lanc^HYW~j$ca/nome/anc/.ssn[abc@ZHYW.sshJiUtotal16驗證是否設置成功sshlocalhost[abcQZHYW~]$cat~/.ssh/id_rsa.pub?-/.ssh/authorized_keys[abctaZHYW?]$sshlocalhost- -Lastlogin:ThuMay283.7:25:482015fromlocalhost[abctSZHYW~]$3、修改4個.xml文件[abccaZHYWhadwp]$cd/iisr/hadQop-2.6.9/etc/hadoop/[abctaZHYWhadoopK11total152rw-r--r--.1abcabc4436Nov132014cap3city-scheduler.xmlrw-r--r-.1abcabc1335NOV132014configuration.xslrw-r--r-.1abcabc318NOV132014container-executor.cfgrw-r--r--.1abcabc962May1920:50con-site,xmlrw-r-r-.1abcabc3670NOV132014had3op-env.cmdrw-r--r--.1abcabc4224Apr2519:41hadoop-env.shrw-r--r-.1abcabc2598Npertiesrw-r--r--.1abcabc249SNov132014hadDp已「ti已srw-r--r-.1abcabc9683Nov132014hadaop-policy?xmlrw-r--r-.1abcabc11551920:56hdf5-site.xmlrw-r--r--.1abcabc1449Nov132S14httpfs-已nv.shrw-r--r--.1abcabc1657Nperti已srw-r--r-.1abcabc21Nov132014httpfs-signature.secretrw-r--r--.1abcabc620Nov132014httpfs-site.xmlrw-r--r--.1abcabc3523Nov132014kms-acls.xmlrw-r--r--.1abcabc1325Nov132014kms-env.shrw-r--r--.1abcabc1631Nov132014kms-log^-pertiesrw-r--r--.1ahrahr5511Nnynkms-sitp.xmlrw-r--r--.1abcabc11291Nov132014log*pertiesrw-r--r--.1abcabc938NOV132014(napred-env.cmdrw-r--r-.1abcabc1383NOV132014mapred-env.shrw-r--r--.1abcabc4113Nov132S14mapred-queues.xml.templatErw-r--r--.1abcabc844May1920:54mapred-site.xmlrw-r--r-.1abcabc10NOV132014slaves(1)、core-site.xml〈property〉〈name〉〈/name〉〈value〉hdfs://hadoop:8020〈/value〉〈/property〉〈property〉〈name〉hadoop.tmp.dir〈/name〉〈value〉/home/zpc/hadoop/mytmp〈/value〉〈/property〉(2)、hdfs-site.xml<property〉〈name〉dfs.replication〈/name〉〈value〉1〈/value〉</property〉<property〉〈name〉.dir〈/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〉(3)、mapred-site.xml〈property〉〈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@ZH¥Wshin]*./start-dfs.sh15/05/2817:36:55WARMutil.NativeCodeLoader:Unabletoloadnative-hadoopliDraryforyourplatform...usingbui'.tin-javaclasseswhereapplicable5Tartingnameriodeson[zhyw]ZHW:startingnamenode,loggingto/usr/hadoop-2.6.0/logs/hadoop-abc-rainenode-ZHYW^outlocalhost:startingdatanode,loggingto/usr/hadoop-2.6.Q/logs/hadcop-abc-datanode-ZHYW.outStartingsecondarynanenodcs[]Q.6.0.0:startingsecondarynamenode,loggingto/usr/hadoop-2.6.0/logs/hadoop-abc-sEConthrynmmEnadE-£HYW.Qirt15/Q5/2817:38:30WARMJtil.NativeCodeLoader:Unabletoloadnative-hadoopLibraryforyourplatform...usingbuiltin-javaclasses^hereapplicable[abc(3ZHYW5Dir]Sjps39S2DataNDde2990NanBNode3239SecondaryNsmeMode3377Jps[abc@ZHYWsbin]4|、再執行sbin下的start-yarn.sh這個腳本文件啟動yarn./start-yarn.sh8、輸入jps檢測是否全部啟動
LdUCiatiHIlN丄'I」、./iLdll-ydlll.S"|startingyarndaenonssiailinyresodrcenianager,Loggingld/Gsr/liadoop-2.6.0/logs/yarn-abc-resourcemanager-ZHYW.outlocalhost:startingnodemanager,loggingto/usr^hadoop^.B.O/logs/yarn-abc-rodemanner-ZHYW.outResoirceManagerDataNodeResoirceManagerDataNodeNameNodeSecondaryNameNodeNodeManagerJpg343730822990323935363583[abcfEZHYW5bi'l]sI四、程序設計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);//設置Map、Combine和Reduce處理類job.setMapperClass(Map.class);job.setCombinerClass(Reduce.class);job.setReducerClass(Reduce.class);//設置輸出類型job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//將輸入的數據集分割成小數據流job.setInputFormatClass(TextInputFormat.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函數publicstaticclassMapextends Mapper〈LongWritable,Text,Text,IntWritable>{//實現map函數publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,InterruptedException{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〈IntWritable〉iterator二values,iterator();while(iterator.hasNext()){sum+=iterator.next().get();//計算總分count++;//統計總的科目數}intaverage=(int)sum/count;//計算平均成績context.write(key,newIntWritable(average));}}4、 輸入文件J JI[abcQZHYWhadoop-2.6.0]icatchinese.txtlalice6893Imary85I[abctaZHYWtimdo叩-2.6.0]$catengl2sh.txt^Malice87^HbobS9Imary86I[abcQZHYWhadaop-2.6.0]$catmath.txtlalice79^Mbob83Imary945、 輸出結果[abc(aznYWhad0op-2.6.0]lcd/u5r/hadoop-2.6.0[abc(azHYWhadanp-2!?6?l3]$lltotal&4drwxr-xr-x.2abcabc4096Nau132014bindrwxr-xr-x.3abcabc^0962905:12etcdrwxr-xr-x.2abcabc4096Nau132014includedrwxr-xr-x.3abcabc4096Nov132G14libdrwxr-sr-x?2abcabc4096Nov132014-rw-r--r--.1abcabc15429Nav1322斗LICEN5E.txtdrwxr-xr-x.3abcabc4096May2817:40logs-rw-r--r--.1abcabc101Nau132014WOTICE.txt-rw-r--r-.1abcabc1366Nou132614README.txtdrwxr-xr-x.2abcabc4096Nov132G14sbindrwxrwxr-x?2abcabc4096May2904:10scoreindrwxrwxr-x.2abcabc4696May2904:12scorecutdrwxr-xr-x.4abcabc4096Nau132Q14share[abc(aznYWhadaap-2!.6.l3]1|
[abc@ZHYWhadoop-2.6.0]$cd/usr/hadaap-2.6.0/score_out/[abc(azHYWscoreout]$lltotal4-rw-rw-r--.1abcabc2&flay2994-:12part-OOOO-rw-rw-r--.1abcabc0Hay2994-:19part-0000-[abc@ZHYWscoreout]Jcatpart-9090alice78bob88mary88rahr^7HYWsrnrpnutH■五、 課程總結通過本次課程的學習,我了解了hadoop分布式計算的原理,掌握了一些基本的linux編程、linu系統中hadoop的部署和HBASE的原理。學習實踐的過程中遇到了許多問題,通過自己的探索和老師同學的幫助,也一一解決了,同時,在不斷的發現問題和解決問題中也提升了自己的能力,感到獲益匪淺。解決問題的過程都不會是一帆風順的,在一次次的嘗試中會不斷遇到更多的問題,但靜下心來仔細思考,這不僅是對思維也是對性情的磨練,獲得的不僅是在能力上的提升,更重要的是能讓我更冷靜的去對待生活中遇到的問題,更勤于思考,沉著應對。六、 附錄ackagecom.hebut.mr;importjava.io.IOException;importjava,util.lterator;importjava.util.StringTokenizer;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;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.FilelnputFormat;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>{//實現map函數publicvoidmap(key,Textvalue,Contextcontext)throwsIOException,InterruptedException{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));}}}publicstaticclassReduceextendsReducer<Text,IntWritable,Text,IntWritable>{//實現reduce函數10publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextconte
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業互聯網平臺霧計算協同機制在智能工廠生產效率評估中的應用報告001
- 2025年新能源商用車輛在快遞分揀中心的運用與市場需求報告
- 綠色供應鏈管理在軌道交通制造業的應用與綠色生產2025年行業洞察報告
- 市場代理分銷協議及補充協議說明
- 我的語文老師:一位影響深遠的人像作文13篇范文
- 森林童話故事創作6篇
- 寵物醫療健康合作協議
- 軟件企業軟件產品創新開發流程設計
- 化工工藝流程及操作原理試題集
- 論生活態度的議論文11篇范文
- 地質學基礎與礦產資源評價試題
- 司法考試真題含答案2024
- 數控維修面試試題及答案
- DB31-T 1564-2025 企業實驗室危險化學品安全管理規范
- 鋼材精密加工項目可行性研究報告項目建議書
- 酒店收益管理原則試題及答案
- 常見輕微病癥健康管理專家共識(2025版)
- 工程造價司法鑒定實施方案
- 《常用音頻接口介紹》課件:深入了解各種音頻接口的特點與應用
- 尼康CoolPixP100中文說明書
- 彩色插畫風兒童繪本故事《狐假虎威》閱讀分享課件模板
評論
0/150
提交評論