Hadoop云计算实验报告Word下载.docx

上传人:b****1 文档编号:13161100 上传时间:2022-10-07 格式:DOCX 页数:12 大小:1.09MB
下载 相关 举报
Hadoop云计算实验报告Word下载.docx_第1页
第1页 / 共12页
Hadoop云计算实验报告Word下载.docx_第2页
第2页 / 共12页
Hadoop云计算实验报告Word下载.docx_第3页
第3页 / 共12页
Hadoop云计算实验报告Word下载.docx_第4页
第4页 / 共12页
Hadoop云计算实验报告Word下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Hadoop云计算实验报告Word下载.docx

《Hadoop云计算实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《Hadoop云计算实验报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

Hadoop云计算实验报告Word下载.docx

Hadoop集群:

一台namenode主机master,一台datanode主机salve,

master主机IP为10.5.110.223,slave主机IP为10.5.110.207。

3实验设计说明

3.1主要设计思路

在ubuntu操作系统下,安装必要软件和环境搭建,使用eclipse编写程序代码。

实现大数据的统计。

本次实验是统计软件代理系统操作人员处理的信息量,即每个操作人员出现的次数。

程序设计完成后,在集成环境下运行该程序并查看结果。

3.2算法设计

该算法首先将输入文件都包含进来,然后交由map程序处理,map程序将输入读入后切出其中的用户名,并标记它的数目为1,形成<

word,1>

的形式,然后交由reduce处理,reduce将相同key值(也就是word)的value值收集起来,形成<

word,listof1>

的形式,之后再将这些1值加起来,即为用户名出现的个数,最后将这个<

key,value>

对以TextOutputFormat的形式输出到HDFS中。

3.3程序说明

1)UserNameCountMap类继承了org.apache.hadoop.mapreduce.Mapper,4个泛型类型分别是map函数输入key的类型,输入value的类型,输出key的类型,输出value的类型。

2)UserNameCountReduce类继承了org.apache.hadoop.mapreduce.Reducer,4个泛型类型含义与map类相同。

3)main函数通过addInputPath将数据文件引入该类,在通过setOutputPath将生成结果转为一个文件,实现生成结果,即统计结果的查看。

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

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

程序具体代码如附件中源程序。

4实验过程

4.1安装实验环境

4.1.1安装ubuntu操作系统

1)打开VMware,在Hometab中单击“CreateaNewVirtualMachine”,

2)选择custom,选择虚拟硬件版本Workstation9.0,选择ios文件,next,

3)录入目标操作系统信息,包括Fullname、Uername和Password,next,

4)选择默认的选项,一般不做更改,最后确认信息,Finish,

5)安装成功后,会看到如下画面,

4.1.2安装配置Samba

安装samba主要为了实现与windows操作系统的通讯,由于server版本的ubuntu没有自带图形操作界面,所以下载资料等操作不太方便,这也是安装samba的目的之一。

1)安装samba,输入如下命令:

2)安装vim

3)创建共享目录,并修改权限

4)配置samba。

修改samba的配置文件/etc/samba/smb.conf,将security=share,并在文件的末尾追加如下内容,

5)测试。

在windows实机中,通过ip访问ubuntu虚拟机,可以见到share文件夹

4.1.3安装配置JDK

首先,下载java开发工具包JDK。

在本次试验中,我们下载的版本是jdk-7u80-linux-x64.gz。

解压安装到/usr/lib/jvm/目录下,更名为java-7-sun。

配置环境变量/etc/environment,

使配置生效

测试安装配置结果

4.1.4在单节点(伪分布式)环境下运行HADOOP

1)添加Hadoop用户并赋予sudo权限

2)安装配置SSH

切换至hadoop用户,

配置密钥,使得hadoop用户能够无须输入密码,通过SSH访问localhost,

测试结果:

3)安装配置Hadoop

首先下载Hadoop,解压缩到/opt/hadoop目录下,本次试验中我们下载的版本是hadoop-1.2.1-bin.tar.gz,更改目录名称为hadoop。

修改与hadoop相关的配置文件(在/opt/hadoop/conf目录下),分别是core-site.xml,hadoop-env.sh,hdsf-site.xml,mapred-site.xml。

在此不一一列举。

4)运行Hadoop

首先格式化HDFS,

启动单节点集群,

通过jps查看,

master

slave

停止单节点集群,

4.1.5在多节点(分布式)环境下运行HADOOP

1)设置/etc/hosts文件

实验中两台机器处于同一局域网中,其中一台作为master,ip地址为10.5.110.223,一台作为slave,ip地址为10.5.110.207,修改两台机器的/etc/hosts文件,

2)设置节点之间无密码SSH登陆

验证配置SSH是否正确

3)修改集群配置文件

修改master的masters、slaves,修改所有节点的core-site.xml,hdsf-site.xml,mapred-site.xml,在此不一一列出。

4)在master上格式化HDFS

5)启动和停止集群

启动集群,

在master上启动HDFS后,jps结果如下:

在master上启动mapreduce后,jps结果如下:

停止集群

4.2运行程序

4.2.1在单机上运行程序

(1)在Eclipse下,新建map/reduce工程

(2)新建一个java类UserNameCount,编写代码

(3)运行程序,结果如下:

(4)在eclipse中编译好源代码后,导出程序的jar包,供在集群上使用。

4.2.2在集群上运行程序

(1)启动集群,通过jps命令查看master,slave上启动的服务列表,结果如下:

(2)在集群环境下运行该程序jar包(UserNameCount.jar),结果如下:

(3)查看集群环境下启动程序生成的结果,即output文件,结果如下:

(4)数据统计结果在part-r-00000中,具体内容如下,

5附件

源代码如下:

packagehadoop;

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.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;

publicclassUserNameCount{

publicstaticclassUserNameCountMapextends

Mapper<

LongWritable,Text,Text,IntWritable>

{

privatefinalIntWritableone=newIntWritable

(1);

privateTextword=newText();

publicvoidmap(LongWritablekey,Textvalue,Contextcontext)

throwsIOException,InterruptedException{

Stringline=value.toString();

StringTokenizertoken=newStringTokenizer(line);

while(token.hasMoreTokens()){

word.set(token.nextToken());

context.write(word,one);

}

}

}

publicstaticclassUserNameCountReduceextends

Reducer<

Text,IntWritable,Text,IntWritable>

publicvoidreduce(Textkey,Iterable<

IntWritable>

values,

Contextcontext)throwsIOException,InterruptedException{

intsum=0;

for(IntWritableval:

values){

sum+=val.get();

context.write(key,newIntWritable(sum));

publicstaticvoidmain(String[]args)throwsException{

Configurationconf=newConfiguration();

Jobjob=newJob(conf);

job.setJarByClass(UserNameCount.class);

job.setJobName("

usernamecount"

);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1