云计算课程实验指导与实验报告.docx
- 文档编号:12623472
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:12
- 大小:1.59MB
云计算课程实验指导与实验报告.docx
《云计算课程实验指导与实验报告.docx》由会员分享,可在线阅读,更多相关《云计算课程实验指导与实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
云计算课程实验指导与实验报告
云计算实验报告
学号:
姓名:
提交日期:
成绩:
实验一
【实验内容】
一、实验目的
在Linux环境下搭建hadoop平台,掌握hadoop平台的搭建流程。
学习使用HDFS,熟悉基本操作指令,学习在hadoop平台下运行程序。
二、实验步骤
注意!
实验室使用的linux系统分为两个版本,Ubuntu12和ubuntu14
Ubutun12的用户名和密码都是haiming
Ubuntu14的用户名是wan,密码是123
Ubuntu14登陆时需要先输入用户名和密码登陆,然后用startx命令进入图形界面,熟练使用linux的同学可以不用图形界面。
打开homefolder,注意,不同版本的linux操作系统打开homefolder的图标不同。
打开其中的hadoop文件夹,其中有一个haoop-1.0.3.tar.gz的压缩包。
注意:
原路径下有一个解压后的haoop-1.0.3文件夹,大家把这个重命名(加个"_old")
右键点击压缩包,解压到本地,会生成一个hadoop-1.0.3的文件夹
说明:
hadoop是基于java环境,必须先安装jdk,本虚拟机的jdk已经安装完毕,本次实验不需要再安装。
打开其中的conf文件夹,hadoop的使用需要对其中的六个文件进行配置
1、修改hdfs-site.xml:
HDFS配置文件,该模板的属性继承于core-site.xml
2、修改mapred-site.xml:
MapReduce的配置。
3、点击图标启动一个终端,注意,不同系统启动终端的方法不同。
同时按Alt和F2,打开“运行应用程序”对话框,输入:
gnome-terminal,之后点右下角的“运行”,就打开终端工具
4、在终端中输入如下命令进行格式化,格式化后会在tmp文件夹中生成目录结构
5、格式化之后输入如下命令来启动hadoop,为简便起见,本次实验略过了ssh安装的过程,因此在启动过程中可能需要输入密码,大家输入登陆密码即可。
6、例子中的wordcount程序,以hdfs中input为输入,建立一个文件夹output为输出,运行中可以通过上边提到的网页观察程序运行进度,也可以从终端观察。
三、实验结果
实验二
一、实验内容
在Eclipse环境下编写一个mapreduce程序,掌握mapredcue编程框架
将Mapreduce程序打包,在hadoop环境下运行程序并观察结果
二、实验步骤
使用eclipse新建一个javaproject
将hadoop-1.0.3.tar.gz解压
在工程名上点右键,选择buildpathàaddexternalarchives
选择刚才解压的hadoop目录下的如下jar包
在src上点击右键,选择newàclass,新建类Wordcount
加入如下代码
importjava.io.IOException;
importjava.util.StringTokenizer;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.fs.Path;
importorg.apache.hadoop.io.IntWritable;
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.output.FileOutputFormat;
importorg.apache.hadoop.util.GenericOptionsParser;
publicclassWordcount{
publicstaticclassTokenizerMapperextends
Mapper
privatefinalstaticIntWritableone=newIntWritable
(1);
privateTextword=newText();
publicvoidmap(Objectkey,Textvalue,Contextcontext)
throwsIOException,InterruptedException{
//构造一个用来解析str的StringTokenizer对象。
java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。
StringTokenizeritr=newStringTokenizer(value.toString());
//hasMoreTokens()返回是否还有分隔符
while(itr.hasMoreTokens()){
//返回从当前位置到下一个分隔符的字符串
word.set(itr.nextToken());
context.write(word,one);
}
}
}
publicstaticclassIntSumReducerextends
Reducer
privateIntWritableresult=newIntWritable();
publicvoidreduce(Textkey,Iterable
Contextcontext)throwsIOException,InterruptedException{
intsum=0;
for(IntWritableval:
values){
sum+=val.get();
}
result.set(sum);
context.write(key,result);
}
}
publicstaticvoidmain(String[]args)throwsException{
Configurationconf=newConfiguration();
if(args.length!
=2){
System.err.println("Usage:
wordcount
System.exit
(2);
}
//Job的初始化
Jobjob=newJob(conf,"wordcount");
job.setJarByClass(Wordcount.class);
//然置Job处理的Map(拆分)、Combiner(中间结果合并)以及Reduce(合并)的相关处理类
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
//设置Job输出结果
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
//调用setInputPath()和setOutputPath()设置输入输出路径
FileInputFormat.addInputPath(job,newPath(args[0]));
FileOutputFormat.setOutputPath(job,newPath(args[1]));
System.exit(job.waitForCompletion(true)?
0:
1);
}
}
最后得到一个jar包,将该jar包复制到linux中hadoop1.0.3的文件夹中(与实验1用到的hadoop-examples-1.0.3.jar路径相同)使用和实验1相同的命令运行自定义的jar包MapReduce简介
本程序数据处理过程
三、实验结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 课程 实验 指导 报告