分布式实验报告_第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管理存储的数据。可将HDFS看成一个容量巨大、具有高容错性的磁盘,提供了高可靠性、高扩展性和高吞吐率的数据存储服务。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

提交评论