云计算课程实验指导与实验报告_第1页
云计算课程实验指导与实验报告_第2页
云计算课程实验指导与实验报告_第3页
云计算课程实验指导与实验报告_第4页
云计算课程实验指导与实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算

PAGE

6

云计算实验报告

学号:

姓名:

提交日期:

成绩:

实验一

【实验内容】

一、实验目的

在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解压

在工程名上点右键,选择buildpathaddexternalarchives

选择刚才解压的hadoop目录下的如下jar包

在src上点击右键,选择newclass,新建类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<Object,Text,Text,IntWritable>{

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<Text,IntWritable,Text,IntWritable>{

privateIntWritableresult=newIntWritable();

publicvoidreduce(Textkey,Iterable<IntWritable>values,

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<in><out>");

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输出结果<key,value>的中key和value数据类型

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

//调用setInputPath()和setOutputPath()设置输入输出路径

FileInputFormat.addInputPath(job,newPath(args[0]));

FileOutputFormat.setOutputPath(job,newPath(args[1]));

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论