《MapReduce经典例子WordCount运行详解.docx》由会员分享,可在线阅读,更多相关《MapReduce经典例子WordCount运行详解.docx(15页珍藏版)》请在优知文库上搜索。
1、HaclpM叩RedUCe经典例子WordCount运行详解1、MaPRCdUCC理论简介1.1MaPRedUCe编程模型M叩RedUce采纳“分而治之”的思想.把对大规模数据集的操作,分发蛤个主节点背理卜的各个分节点共同完成,然后通过整合各个节点的中间结果,得刎破终结果.简洁地说,MapKwiuceM星一任务的分够及结果的汇总7在Hadwp中,用于执行MapRMcc任务的机器角色有两个;一个是JObTnlCk5另一个是TaskTrackcr.JobTrackcr是用于讽度工作的,TaskTruckcr是用于执行工作的.一个Hadwp奥群中只有一台JubTmcker.在分布式计灯中,MaPRU
2、dUCe框架负货处理了并行编程中分布式存储、工作调度、负我均ft、容错均衡、容错处理以及网络通信等困用问趟.把处理过程离度抽象为两个由数:InaP和mducemap夕发把任务分解成多个任务reduce负货杷分解后多任务处理的豺果汇总起来。於要留意的是,川M叩RCdUeC来处理的数据”式或任务必需具的这样的特点:待处理的数据蛆可以分解成我多小的数据梁,而旦每一个小数据里都可以完全并行地进行处理,102MaPRedUCe处理过程理.每个reduce产生。或1个输出,reduce的输出也是key.InputMappersMiddleResultI;11ISPliIo-ap()-5JII1M)lit2
3、二BaP()jzZlMMapReduce处理大数据集的过程Value形式的.ReducersOutputr rlv()UPartO_TT_1 rediwnO1parti在Hadoop中,每个MaPRCdlKC任务都被初始化为一个Job,每个Job乂可以分为两种阶段:nap阶段和reduce阶段.这两个阶段分别用两个函数表示,即map函数和reduceft.nap函数接收一个key,value形式的输入,然后同样产生一个(key.value)形式的中间输出,Hadoop函数接收一个Kkey.(listofvalues)影式的输入,然后对这个WdUe集合进行处2、运行WOrdCOUnt程序单诃il
4、数是域新洁也迁址能体现MaPRalgC思忸的程序之、可以称为M叩RCdUce版-HelloWorid-,该程序的完整代码可以在Hadoop安装包的-srcexailesw书目下找到.单词计数主要完胜利能是:统计一系列文本文件中每个统词出现的次数,如下图所乐.2.1打算工作现在以hadoo一般用户登录“Mcer.Hadoop”服务等.I)创建本地示例文件忏先在“hfiIe1.txtechoHelloHadoopfiIc2.txthadoooaM03tcr7$odhsdoopPMasterfile$hdoopI:传本地Iilc中文件到嶷群的inptI11IF1.hadoopillasterIhdo
5、utfiIcl.txt132012-00205:45ucrMdooo/irwut/fiIc2.txt】)在蜒群上运行WoMCount科摩的注:以i5作为输入书目,output书目作为输出书目.已燎墉洋好的WonjCcmnt的Jar在ushcdoop下面,-hndoop-cxwlcs.O.O.jmr就是,所以在下面执行吩叫时记得把路径当全U不然会提示找不到该Jar包.SH/WhadoooereirhadoDM8g6W0M16htd&oph8g3732816had8oMdooo142465216hd8pha8g2S307371216hdopMdoeo287776IZlJ1600:39hdooo-1
6、1t-1.0.0.jfg39Mgpff1QD,00:39badoooeinoe*100jf00:39ld-tcftt-1.0.6.)rw39hggnrg8-100jr徜入,2出文科克Ihadooo*VaeterJlhdooorurhadoooMdoore*oe-1.O.Ojrw%stIneUt8QQut皿2HWnrIC.fJ.rHF:t2)MapRcducc执行过H显示信息(hdoo-,Mfloter;$Kadgpjrurhdoophrcd.JobCIcnt.INhORraoredJoM11entINFOaored.UObClientllr0forcd.SbCIicnt-IMFOvaoredJ
7、obCIientINFOaredJobCliMtINFOwhored.JobCIientRunn11job.job2012022922130002IW0reduce0%ciaoS0reduce0“0100%reduce0、o100%reduce100JobOOflpIctc:job2012022922U_0002Counter,29HWoOP吩咐会启动个JVM来运行这个M叩RedMC程序.并日动获得HadOOP的配ft同时把类的路径(及其依靠关系)加入到Hadoop的阵中.以上就是HadoopJob的运行记录.从这里可以看到,这个Job被给予了一个ID号:job_2。002,而且得知输人文件有
8、两个(TOtalinputpathstoprocess:2).同时还可以了解mup的输入出记求(record数及字15数,以及reduce输入物出记录.比如说,在本例中,,固,的Usk敢垃是2个,reduce的task数录是一个,lp的舱入record数是2个,物出rcco11J数是4个等信息。2。3查看结果I)代看HDFStOUlPlrt书目内容02012-0X)206:08/urJoo0/outuV.SUCCfeSS02012-03-0206:0,/uerdooooutCMt*.locs252O12O3O206:07/user/hodoop/output/part-r-00000Ihado
9、oodNafiterhadoopf-Ieoutput卜。Und3Iteasr-r-r-1hScpuorcrupdrxr-r-hadoooSuoereroup-r-r-r-1hadoopsupergrouphadocpOMaoterJ$从上图中知道生成了三个文件.我们的结果在“Part-r-orld1IhadoOPQltaSter$3、WOrdCoUnt源码分析3.1 特殊数据类型介绍HadgP供应了如下内容的数据类型,这些数据类型都实现了WritabIeCOmparabkftl1,以便用这些类型定义的数据可以被序列化迸行附络传输和文件存储.以及进行大小比较.BooIeanWriiabIe:标准
10、布尔也数值ByicWritabk:单字15数值DixibleWfitabIe:双字H,敢FloatWritabIc1浮点StIntWritablc:整型数1.ongWritabIc:长!KW数TcxtriSMJUTFS格式存储的文本NuIIWriiabk:*l中的key或value为空时运用3.2 IB的WOrdCoUnt分析I)海代码程序packageorg.apache11o.aacle.hadc.fs.Path:importorg.apachc.hadoopio.IntWritabic:importorg.apchc.hadoop.io.1.ongWritable:importorg.apuchc.ha