版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京财经大学课程论文考试(封面)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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灯具装配工安全行为测试考核试卷含答案
- 初中英文短语课程设计
- 贝叶斯网络在医疗诊断中的建模创新课程设计
- 舟桥工创新实践能力考核试卷含答案
- 风力发电机检修工岗位生产标准化考核试卷含答案
- 数据治理员复测能力考核试卷含答案
- Agent自动化测试指南课程设计
- 保育师岗中综合水平考核试卷含答案
- 农业经理人操作管理考核试卷含答案
- 再造烟叶设备操作工技术实操评优考核试卷含答案
- JT∕T 1496-2024 公路隧道施工门禁系统技术要求
- 纳米纤维课件
- 《高二开学第一课》主题班会课件
- 2020风电场设备事故现场处置方案
- 自考《兽医法规14239》考试复习题库(必备版)
- 《中华民族大团结》(初中)第1课-爱我中华教学课件
- 2021废(污)水处理用复合碳源
- 化学(基础模块)中职PPT完整全套教学课件
- 架空导地线-液压压接(郭学闻)
- 技师培训交直流调速
- 输变电工程项目安全管理台账
评论
0/150
提交评论