Hadoop云计算实验报告
云计算实验报告2

云计算实验报告2太原科技大学实验报告 2021年 10 月14日实验时间:16 时 00分至18 时00 分专业姓名学号班级课程名称实验名称 Hadoop 平台安装实验 2同组者指导教师成绩一、实验目标:在大数据时代,存在很多开源的分布式数据采集、计算、存储技术,本实验将熟悉并搭建几种常用的大数据采集、处理分析技术环境。
实验二需要在笔记本上搭建 Hadoop 集群,实验报告根据教程对笔记本上创建虚拟机搭建 Hadoop 集群的步骤进行了说明。
包含所有需要安装的软件与服务的版本,安装路径,安装方法等。
二、实验原理:1.单机模式:Hadoop 默认模式、即非分布式模式(本地模式)、无需进行其他配置即可运行非分布式,即 java 单进程,方便进行调试。
2.伪分布式模式:Hadoop 在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 java进程来运行,节点既作为 NameNode 也作为DataNode,同时,读取的是 HDFS 中的文件。
3.分布式模式:使用多个节点构成集群环境来运行 Hadoop。
三、实验内容:以伪分布式模式安装 Hadoop 平台四、实验设备:个人笔记本电脑虚拟街软件:VMware Workstation系统 CentOS-7-_86_64-Everything-20__3.iso 阿里云contos-7 镜像站点:centos/7/isos/_86_64/ 五、实验步骤::将 hadoop-2.7.3.tar.gz,拷贝到 CentOS中的~/software 目录下 1、将 Hadoop压缩包,解压缩到用户主目录的 dt 目录下;$ cd ~ $ mkdir dt$ cd dt$ tar -z_vf ~/software/hadoop-2.7.3.tar.gz2、打开/etc/profile 配置文件,配置 hadoop 环境变量:e_port HADOOP_HOME=/home/hduser/dt/hadoop-2.7.3e_port PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH3、保存。
云计算技术与应用:Hadoop实验

Hadoop实践与应用主讲人:金永霞主要内容HDFS基本概念✓主从架构模型系统,一个HDFS集群由一个Master节点和多个Slave节点构成Master节点:称为NameNode,用以管理整个文件系统命名空间和客户端对文件的访问Slave节点:称为DataNode,用于真正存储数据块(Block)✓是文件存储的逻辑单元,默认块大小是64MB✓每个块建立多个副本(备份),这些副本都尽量分布在不同的DataNode节点上启动Hadoop✓在master节点上执行start-all.sh命令启动Hadoop✓分别在各个节点上执行jps命令查看进程✓在master节点上执行jps命令,可以看到有NameNode、JobTracker和SecondaryNameNode三个进程启动✓在slave节点上执行jps命令,可以看到有DataNode和TaskTracker两个进程启动关闭Hadoop✓在master节点上执行stop-all.sh命令关闭Hadoop✓hadoop fs [命令选项]✓hadoop fs [命令选项]✓hadoop fs [命令选项]✓在HDFS文件系统中建立一个目录,将本地文件系统的一个文件上传至该目录。
✓操作步骤(1) hadoop fs -mkdir test //在HDFS创建目录test(2) hadoop fs -ls // 显示HDFS目录结构(3) echo “hello hadoop”>file.txt //在本地创建一个文件(4) hadoop fs -put file.txt <HDFS目的路径> //把本地文件上传到HDFS(5) hadoop fs -ls <HDFS目的路径> //显示HDFS目录结构(6) hadoop fs -cat file.txt //查看HDFS文件内容✓在Eclipse中创建一个Java工程✓打开该工程的属性设置窗口,在左侧选择“Java构建路径”,右侧选择“库”标签栏,单击“添加外部JAR(X)”✓选择需要导入的所有jar包:包括hadoop-1.1.2文件夹下的所有jar包,以及hadoop-1.1.2/lib目录下的所有jar包✓通过.URL对象打开一个数据流✓调用IOUtils类的静态方法copyBytes()将HDFS数据流复制到标准输出流System.out中✓copyBytes(InputStream in,OutputStream out,intbuffSize,boolean close)✓参数in表示输入流,out表示输出流,buffsize表示缓冲区大小,close是布尔变量,表示复制完毕后是否关闭流✓使用URL方式只能读取数据,不能写入数据package hdfs;import .URL;import java.io.InputStream;import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;import org.apache.hadoop.io.IOUtils;public class App1 {public static final String HDFS_PATH="hdfs://192.168.80.100:9000/Download";public static void main(String[] args)throws Exception{URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());final URL url=new URL(HDFS_PATH);final InputStream in=url.openStream();IOUtils.copyBytes(in, System.out, 1024, true);}}✓FileSystem类封装了几乎所有的文件操作,例如创建目录,显示目录列表,读写HDFS文件,对HDFS文件的上传、下载以及删除等使用FileSystem API操作文件的程序框架operator(){设置Configuration对象;获取FileSystem对象;进行文件操作;}public boolean mkdirs(Path f) throws显示目录文件列表public FileStatus[] listStatus (Path f) throws IOExcertion 创建HDFS文件public FSDataOutputStream create(Path f) throws IOExcertion 上传本地文件到HDFS文件系统public void copyFromLocalFile(Path src, Path dst) throws IOException 把HDFS文件复制到本地文件系统public void copyToLocalFile(Path src, Path dst) throws IOException 删除一个文件或目录public boolean delete(Path f, boolean recursive) throws IOExceptionimport .URI;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class App2 {public static final String HDFS_PATH="hdfs://192.168.80.100:9000";public static final String DIR_PATH="/dirtest";public static void main(String[] args)throws Exception{final FileSystem fs=FileSystem.get(new URI(HDFS_PATH) , new Configuration());/*调用mkdirs()方法创建目录 */fs.mkdirs(new Path(DIR_PATH));}}MapReduce计算模型✓一种并行计算模型,计算过程分为两个阶段Map:对输入的原始数据列表的每个元素进行指定的转换,一个输入的键值对<key,value>映射成同样为<key,value>形式的中间结果,并把具有相同key值的value归纳起来形成一个value列表(这个过程称为Shuffle)并传递给reduce函数 Reduce:将Map输出的数据列表按照某种方式进行合并处理,获得输出形式为<key,value>的最终处理结果MapReduce程序结构-Mapper✓典型MapReduce程序包括三个部分:Mapper、Reducer、作业执行✓Mapper:负责数据处理,将输入的一个<key,value>对映射到0个或多个中间格式的<key,value>形式✓map()方法的默认实现protected void map(KEYIN key, VALUEIN value,Context context) throws IOExcepti on, InterruptedExceptio{context.write((KEYOUT) key, (VALUEOUT) value);}MapReduce程序结构-Reducer✓Reducer:接受来自各个Mapper的输出,根据<key,value>对中的key对输入数据排序,把具有相同key的值进行归并,通过迭代处理与指定key相关联的值,生成列表<key, value>✓reduce()函数的默认实现protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context co ntext ) throws IOException, InterruptedException{for(VALUEIN value: values){context.write((KEYOUT) key, (VALUEOUT) value);}}MapReduce程序结构-作业执行✓作业执行:写驱动代码让程序运行起来Configuration conf = new Configuration(); //读取Hadoop配置Job job = new Job(conf, "作业名称"); //创建一个job对象job.setJarByClass(类的名称); //如果要把程序打成jar包运行,需要这条语句job.setMapperClass(Mapper类型); //设置自定义的Mapper类job.setCombinerClass(Combiner类型); //设置Combiner类job.setReducerClass(Reducer类型); //设置自定义的Reducer类job.setOutputKeyClass(输出Key的类型); //设置输出的key类型job.setOutputValueClass(输出value的类型); //设置输出的value类型FileInputFormat.addInputPath(job,输入HDFS路径); //设置job作业执行时输入文件的路径FileOutputFormat.setOutputPath(job,输出HDFS路径); //设置job作业执行时输出文件的路径System.exit(job.waitForCompletion(true) ? 0 : 1); //设置直到作业运行结束,程序退出MapReduce应用程序实现✓分析问题,设计算法✓代码实现✓导出MapReduce程序的jar文件✓在HDFS文件系统准备程序运行所需的目录和输入文件✓使用“hadoop jar”命令运行程序✓程序运行后生成输出目录output,使用“hadoop fs -cat”命令查看运行结果MapReduce应用程序实例-单词计数✓问题描述:单词计数的目标任务是统计给定文件中所有单词的出现次数。
云计算实验报告(范本)

云计算实验报告云计算实验报告篇一:云计算实验报告实验一 Clud Sim优缺点: 1、优点:能够提供虚拟化服务。
其它的优点没感觉到2、缺点:版本不兼容问题严重。
不支持新的模拟实体的创建。
实验环境搭建:(1)下载cludsi m-3.0和j dk1.7,配置环境变量 path=C:\cludsi m-3.0\j ars\cludsi m-3.0.j ar;C:\clud sim-3.0\jars\clud sim-exampl es-3.0.jar。
JAVA_HME= C:\Pr gram Files\Java\jdk1.7.0_40(2)导入工程项目,如下图;搭建环境中遇到的问题:(1) surces文件夹中会有包提示errr。
其解决方法:网上下载 fla nagan.jar包并导,问题得以解决,如下图所示:(2)算法实现:(1)先来先服务代码:p ublic vidbindCludle tsTVmsFCFS { intclu dletNum=cl udletList.size; intvmNum=vmLi st.size; i nt i,j;du ble time;int idex=0;//记录当前最先到达的任务id int vdx=0; du ble[] subm ittime=neint[] isbi ndtvm=ne i nt[cludlet Num];fr(i=0;i cludl etNum;i++) //任务是否被分配了{ isbind tvm[i]=0;} //设置各个人物的到达(提交)时间fr(i=0;i c ludletNum;i++) duble[]{0.2,0.2,0.5,0.7,1.5,0.7,0.4,0.3,0.9,0.3}; {cludletLis t.get(i).s etSubmissi nTime(subm ittime[i]); }fr(i=0;i cludlet Num;i++) { time=100.0; fr(j=0;jcludletN um;j++) {{ idex=j;time=cludl etList.get(j).getSub missinTime; } }clud letList.ge t(idex).se tVmId(vmLi st.get(vdx).getId);vdx=(vdx+1)%vmNum; //顺序分配给虚拟机isbindtvm[idex]=1;//表示第 } } if(cludletLi st.get(j).getSubmiss inTime tim e isbindtv m[j]==0) (2)将这段代码加入packagerg.cludbus.cludsim 中的Datacente rBrker中,然后将整个项目重新进行编译。
Hadoop云计算平台实验报告

数据校验技术提高了数据的高可靠性。NameNode 执行文件系统的名字空间操作, 比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体 DataNode 节 点的映射。 DataNode 负责存放数据块和处理文件系统客户端的读写请求。在 NameNode 的统一调度下进行数据块的创建、删除和复制。
责任务执行。用户提交基于 MapReduce 变成规范的作业之后,JobTracker 根据作 业的输入数据的分布情况(在 HDFS 之中) ,将 Map 任务指派到存储这些数据块 的 DataNode 上执行(DataNode 也充当了 TaskTracker) ,Map 完成之后会根据用 户提交的 Reduce 任务数对中间结果进行分区存储在 Map 任务节点本地的磁盘, 执行 Reduce 任务的节点(由 JobTracker 指派)通过轮询的方式从各 Map 节点拉 取 Reduce 的输入数据,并在 Reduce 任务节点的内存进行排序后进行合并作为 reduce 函数的输入,输出结果又输出到 HDFS 中进行存储。
Hadoop 云计算平台实验报告
金松昌 11069010 唐明圣 11069033 尹洪 11069069
实验目标
1. 掌握 Hadoop 安装过程 2. 理解 Hadoop 工作原理 3. 测试 Hadoop 系统的可扩展性 4. 测试 Hadoop 系统的稳定性 5. 测试 Hadoop 系统的可靠性
排序
分片 0
Map
复制 合并
reduce
分区 0
HDFS 副本
分片 1
Map HDFS 副本
reduce Map
分区 1
分片 2
图 2 MapReduce 数据处理流程示意图
云计算大报告

实验报告一、实验目的实践并了解分布式系统基础架构Hadoop二、实验工具及环境1、Hadoop 安装配置实验指南2、VMware Workstation Pro3、Ubuntu三、实验步骤1、创建Hadoop 用户(1)在终端输入命令行:sudo useradd -m hadoop -s /bin/bash (2)设置密码:sudo passwd hadoop(3)增加管理员权限:sudo adduser hadoop sudo(4)注销当前用户,使用Hadoop 用户登录2、更新apt(1)在终端执行sudo apt-get update:(2)安装ssh:sudo apt-get install openssh-server (3)登录本机:ssh localhost,然后设置无密码登录成功后结果如下图:3、安装Java 环境(1 )通过命令安装OpenJDK7:sudo apt-get install openjdk-7-jreopenjdk-7-jdk执行如下命令,会输出一个路径:(2)配置JAVA_HOME 环境变量,输入vim ~/.bashrc。
在文件最前面添加export JAVA_HOME=JDK 安装路径,并保存:(3)执行source ~/.bashrc 使变量设置生效(4)设置好后检验:echo $JAVA_HOMEjava -version$JAVA_HOME/bin/java -version (若成功应与直接执行java -version 一样):4、安装Hadoop2(1)下载hadoop-2.6.0.tar.gz 和hadoop-2.6.0.tar.gz.mds 并观察文件是否完整。
输入如下命令并比较值,相同则继续安装cat ~/Downloads/hadoop-2.6.0.tar.gz.mds | grep 'MD5'md5sum ~/Downloads/hadoop-2.6.0.tar.gz | tr "a-z" "A-Z"将Hadoop 安装至/usr/local/ 中:sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/localcd /usr/local/sudo mv ./hadoop-2.6.0/ ./hadoopsudo chown -R hadoop ./hadoop输入cd /usr/local/hadoop 和./bin/hadoop version 命令来检查Hadoop 是否可用,成功则会显示Hadoop 版本信息:5、Hadoop 单机配置(非分布式)运行grep 例子,将input 文件夹中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数,最后输出结果到output 文件夹。
云计算实验报告

02
实验环境限制
由于实验环境限制,我们未能完全模 拟真实的生产环境。未来可以考虑使 用更接近真实生产环境的实验环境, 以提高实验的实用性。
03
技能水平不足
在实验过程中,我们发现自己在某些 方面的技能水平还有待提高,例如云 安全配置、云资源管理等。未来可以 通过参加培训或自学,提高相关技能 水平。
资源利用率分析
在实验期间,CPU使用率平均为40%,内存使用率为50%。这表明资源利用率较高,需要进一步优化 资源配置。
实验结果分析
性能指标分析
网络带宽在实验期间波动较大,最高达到100 Mbps,最低为50 Mbps。响应时间也随着资源利用率的增加而延长,最长达 到400 ms。这表明需要优化网络配置和应用程序性能。
实验结果分析
安全配置评估
通过安全审计,发现存在一些安全漏 洞,如未及时更新操作系统和应用程 序补丁。需要加强安全管理和配置, 提高系统安全性。
03 云计算技术应用
云计算服务模式
基础设施即服务(IaaS)
提供计算、存储和网络等基础设施服务,用户可以通过云平台 获取虚拟化的硬件资源,如服务器、存储设备和网络设备等。
步骤一:搭建云计算环境
01
03 02
实验步骤
安装云平台软件,如OpenStack或AWS CLI。 步骤二:部署云服务 创建虚拟机实例,配置操作系统和网络。
实验步骤
01 安装和配置数据库、Web服务器和应用服务器。
02
部署应用程序,并进行测试。
03
步骤三:监控与分析
实验步骤
hadoop实验报告总结

hadoop实验报告总结Hadoop是一个大数据处理框架,它可以处理 petabyte 级别的数据存储和处理。
在大数据时代,Hadoop 的使用越来越普及,因此学习和掌握 Hadoop 成为了当今大数据从业人员的必修课。
本实验报告旨在介绍 Hadoop 的使用,以及在使用过程中所遇到的问题和解决方法。
我们需要了解 Hadoop 的基本架构。
Hadoop 的基本组成部分包括 HDFS(Hadoop Distributed File System),MapReduce,YARN(Yet Another Resource Negotiator)等。
HDFS 是一个用于存储和管理大数据的分布式文件系统,MapReduce 是一种用于分布式数据处理的编程模型,YARN 则是一个资源管理系统。
这三个组成部分相互配合,使得Hadoop 可以完成大数据存储和处理的任务。
在本次实验中,我们主要使用 HDFS 和 MapReduce 进行操作。
在使用 HDFS 进行操作之前,我们需要了解 HDFS 的基本概念和几个关键点。
HDFS 的文件以块的形式存储在不同的数据节点中,每个块的大小默认为 128MB。
每个文件至少会存储在三个数据节点中,以确保数据的容错性和高可用性。
HDFS 还具有很好的扩展性,可以根据需要增加更多的数据节点。
在使用 HDFS 进行操作时,我们可以使用 Hadoop 自带的命令行界面或者使用 GUI工具,如 Apache Ambari。
在本次实验中,我们使用了 Hadoop 自带的命令行界面进行操作。
在操作中,我们通过以下几个步骤实现了文件的上传、下载和删除操作:1. 使用命令 `hdfs dfs -put` 上传文件到 HDFS 上。
2. 使用命令 `hdfs dfs -get` 从 HDFS 上下载文件到本地。
3. 使用命令 `hdfs dfs -rm` 删除 HDFS 上的文件。
在使用 HDFS 时还需要注意以下几个关键点:1. 在上传文件时需要指定文件的大小和副本数,默认情况下副本数为 3。
云计算实验报告

云计算实验报告一、实验目的本次云计算实验的主要目的是深入了解云计算的基本概念、架构和关键技术,并通过实际操作和实验数据的分析,亲身体验云计算带来的优势和应用场景。
二、实验环境为了进行本次实验,我们搭建了以下实验环境:1、云服务提供商:选择了_____云服务平台,其提供了丰富的云计算资源和服务。
2、操作系统:使用了_____操作系统。
3、开发工具:选用了_____开发工具集,包括代码编辑器、调试工具等。
三、实验内容(一)云计算服务的创建与配置1、创建虚拟机实例登录到云服务控制台,按照向导创建了一个虚拟机实例。
在创建过程中,选择了合适的操作系统镜像、实例规格(CPU、内存、存储等)和网络配置。
成功创建虚拟机实例后,通过远程连接工具登录到虚拟机,进行了基本的系统配置和环境搭建。
2、存储资源的分配与管理创建了云盘存储,并将其挂载到虚拟机实例上。
通过控制台设置了存储的容量、性能参数和访问权限。
对存储中的数据进行了读写操作,测试了存储的性能和稳定性。
3、网络资源的配置为虚拟机实例配置了公网 IP 和安全组规则,实现了外部网络的访问和安全防护。
搭建了虚拟私有云(VPC),将多个虚拟机实例划分到不同的子网中,并设置了网络路由和访问控制策略。
(二)云计算应用的部署与测试1、 Web 应用的部署在虚拟机实例上部署了一个简单的 Web 应用,使用了_____ Web 服务器和_____数据库。
通过域名访问 Web 应用,测试了其响应时间、并发处理能力和稳定性。
2、大数据处理任务的运行利用云计算平台提供的大数据服务,运行了一个数据处理任务,对大量的数据进行了分析和计算。
监控了任务的执行进度和资源使用情况,评估了云计算在大数据处理方面的性能和效率。
(三)云计算的弹性扩展与负载均衡1、弹性扩展实验模拟了业务负载的增加,通过控制台自动扩展了虚拟机实例的数量和资源规格。
观察了系统在扩展过程中的性能变化,验证了云计算的弹性扩展能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hadoop云计算实验报告Hadoop云计算实验报告1实验目的在虚拟机Ubuntu上安装Hadoop单机模式和集群;编写一个用Hadoop处理数据的程序,在单机和集群上运行程序。
2实验环境虚拟机:VMware 9操作系统:ubuntu-12.04-server-x64(服务器版),ubuntu-14.10-desktop-amd64(桌面版)Hadoop版本:hadoop 1.2.1Jdk版本:jdk-7u80-linux-x64Eclipse版本:eclipse-jee-luna-SR2-linux-gtk-x86_64Hadoop集群:一台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,list of 1>的形式,之后再将这些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, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));程序具体代码如附件中源程序。
4实验过程4.1安装实验环境4.1.1安装ubuntu操作系统1)打开VMware,在Home tab中单击“Create a New Virtual Machine”,2)选择custom,选择虚拟硬件版本Workstation9.0,选择ios文件,next,3)录入目标操作系统信息,包括Full name、Uer name和Password,next,4)选择默认的选项,一般不做更改,最后确认信息,Finish,5)安装成功后,会看到如下画面,4.1.2安装配置Samba安装samba主要为了实现与windows操作系统的通讯,由于server版本的ubuntu没有自带图形操作界面,所以下载资料等操作不太方便,这也是安装samba的目的之一。
1)安装samba,输入如下命令:2)安装vim3)创建共享目录,并修改权限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在单节点(伪分布式)环境下运行HADOOP1)添加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查看,masterslave停止单节点集群,4.1.5在多节点(分布式)环境下运行HADOOP1)设置/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上格式化HDFS5)启动和停止集群启动集群,在master上启动HDFS后,jps结果如下:masterslave在master上启动mapreduce后,jps结果如下:masterslave停止集群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附件源代码如下:package hadoop;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;public class UserNameCount {public static class UserNameCountMap extendsMapper<LongWritable, Text, Text, IntWritable> {private final IntWritable one = new IntWritable(1);private Text word = new Text();public void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {String line = value.toString();StringTokenizer token = new StringTokenizer(line);while (token.hasMoreTokens()) {word.set(token.nextToken());context.write(word, one);}}}public static class UserNameCountReduce extendsReducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, InterruptedException { int sum = 0;for (IntWritable val : values) {sum += val.get();}context.write(key, new IntWritable(sum));}}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = new Job(conf);job.setJarByClass(UserNameCount.class);job.setJobName("usernamecount");job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);job.setMapperClass(UserNameCountMap.class);job.setReducerClass(UserNameCountReduce.class);job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutputFormat.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.waitForCompletion(true);}}。