实验序号及名称:实验 Hadoop平台上部署WordCount程序实验时间∶ 2022514

预习内容

一、实验目的和要求∶

在Hadoop平台上部署WordCount程序。

二、实验任务∶

该项任务请同学作为作业自行完成,并提交实验报告。

脱离ide环境运行wordcount

三、实验准备方案,包括以下内容:

(硬件类实验:实验原理、实验线路、设计方案等)

(软件类实验:所采用的系统、组件、工具、核心方法、框架或流程图、程序清单等)

操作系统:CentOS 7

工具:VMWare WorkstationPro

实验内容

一、实验用仪器、设备:

宿主机(个人笔记本2020年联想拯救者R7000):

操作系统:Windows10;

虚拟机(VMWare Workstation):

操作系统:CentOS 7

二、实验内容与步骤(过程及数据记录):

(1) 先在Eclipse中创建“WordCount”MapReduce项目。

(2) 在项目中创建一个新的Java文件命名为“WordCountTest.java”。

(3)在Java文件中输入下列代码:

import java.io.IOException;
import java.util.Iterator;
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.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.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;public class WordCountTest {public WordCountTest() {}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();String[] otherArgs = (new GenericOptionsParser(conf, args)).getRemainingArgs();if(otherArgs.length < 2) {System.err.println("Usage: wordcount <in> [<in>...] <out>");System.exit(2);}Job job = Job.getInstance(conf, "word count test");job.setJarByClass(WordCountTest.class);job.setMapperClass(WordCountTest.TokenizerMapper.class);job.setCombinerClass(WordCountTest.IntSumReducer.class);job.setReducerClass(WordCountTest.IntSumReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);for(int i = 0; i < otherArgs.length - 1; ++i) {FileInputFormat.addInputPath(job, new Path(otherArgs[i]));}FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length - 1]));System.exit(job.waitForCompletion(true)?0:1);}public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {private IntWritable result = new IntWritable();public IntSumReducer() {}public void reduce(Text key, Iterable<IntWritable> values, Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {int sum = 0;IntWritable val;for(Iterator itr = values.iterator(); itr.hasNext(); sum += val.get()) {val = (IntWritable)itr.next();}this.result.set(sum);context.write(key, this.result);}}public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {private static final IntWritable one = new IntWritable(1);private Text word = new Text();public TokenizerMapper() {}public void map(Object key, Text value, Mapper<Object, Text, Text, IntWritable>.Context context) throws IOException, InterruptedException {StringTokenizer itr = new StringTokenizer(value.toString());while(itr.hasMoreTokens()) {this.word.set(itr.nextToken());context.write(this.word, one);}}}
}

(4) Hadoop配置文件添加到“WordCount” MapReduce项目。

[hfut@master ~]$ cp ~/hadoop-3.2.2/etc/hadoop/log4j.properties ~/workspace/MyWordCount/src

(5) 通过Eclipse运行“MyWordCount” MapReduce项目。

(6) 在eclipse上能如果能够成功运行,将这个项目打包成一个jar包保存到Hadoop里的myapp文件夹中。

(7) 在Hadoop上运行这个程序。

运行结果如图所示:

三、实验结果分析、思考题解答∶

myLocalFile.txt:

运行结果:

经判断,统计结果正确。

四、感想、体会、建议∶

WordCount程序是Hadoop的一个样例测试程序,直接调用jar包即可。通过本次实验,我对HDFS和Hadoop的shell命令有了初步的了解,对在Hadoop平台以及eclipse下运行程序所需操作、部署WordCount程序有了一定的理解并且能够上手操作。

遇见错误及解决办法:

直接运行jar包时,我出现了上图提示,对比老师的实验指导书后,发现该报错是说明缺少参数:输入文件路径及输出文件路径;重新修改命令如下图,可以正确运行:

合肥工业大学2022大数据技术实验二相关推荐

  1. 合肥工业大学2022大数据技术实验一

    实验序号及名称:实验 一    安装Hadoop 实验时间∶ 2022年5月8日 预习内容 一.实验目的和要求∶ 在虚拟机上安装并熟悉Hadoop 二.实验任务∶ 请各位同学完成如下3个实验中的1个, ...

  2. 合肥工业大学2021汇编语言程序设计上机实验二

    实验二  高级汇编程序设计 实验目的 1. 掌握中断服务子程序的编写. 2. 汇编语言与高级语言的混编. 实验内容 1.挂接1CH中断,正计时90秒后退出.要求屏幕显示0-89的秒数. 2.VC++中 ...

  3. 合肥工业大学2021汇编语言程序设计上机实验一

    实验一  基本汇编程序设计 实验目的 1.熟悉在PC机上建立.汇编.连接.调试和运行8086/8088汇编语言程序的过程: 2.掌握基本汇编语言程序设计方法. 3.熟悉DOSBOX下运行dos程序方法 ...

  4. 2022大数据技术使这些行业发生大变化

    如今,大数据的应用对几乎任何行业的发展都会产生积极的影响,而采用这项技术,一些行业比其他行业更有可能发生重大的变化.以下是采用大数据发生重大变化的6个行业. 1.网络安全 黑客一直在不断改进攻击受害者 ...

  5. 《2022 大数据技术与架构视频合集》附PPT和文档,限时下载

    [传道篇]大数据架构师之技术栈及职业修养 01 大数据技术生态与架构演进 02 大数据技术体系与主流技术栈 03 大数据行业职位划分&典型职业发展路径 04 如何规划自己的职业发展方向 05 ...

  6. 西北工业大学软件学院大数据技术实验(一)

    1.服务器信息介绍 学校服务器地址为:10.13.0.21~10.13.0.29,每一个IP对应着是不同配置的主机.现在拿位于10.13.0.22节点上的主机配置进行介绍: CPU:是由Intel专用 ...

  7. 拥抱数字时代 | 第十六届中国大数据技术大会成功举办

    2月26日,由中国计算机学会(CCF)主办,苏州市吴江区人民政府支持,CCF大数据专家委员会.苏州市吴江区工信局.吴江区东太湖度假区管理办公室.苏州市吴江区科技局.苏州大学未来科学与工程学院.Data ...

  8. 合肥工业大学计算机学科排名,合肥工业大学a类学科有哪些?附合肥工业大学第四轮学科评估结果...

    选择科目 测一测我能上哪些大学 选择科目 领取你的专属报告 > 选择省份 关闭 请选择科目 确定 v> 合肥工业大学是江苏省一所知名高校,位于安徽省合肥市,是国家"世界一流学科建 ...

  9. 大数据综合实验(一)

    本案例涉及数据预处理.存储.查询和可视化分析.数据预处理全流程所涉及的各种典型操作,涵盖Linux.MySQL.Hadoop.HBase.Hive.Sqoop.R.Eclipse等系统和软件的安装和使 ...

最新文章

  1. Geoserver汉语版出来啦!!
  2. 在大规模 Kubernetes 集群上实现高 SLO 的方法
  3. Spring Boot 实战系列课程终于齐啦~
  4. 前端学习(3302):类组件父组件和子组件createRef
  5. pandas groupby count_数据分析14-利用pandas进行数据分组
  6. SpringBoot 定义通过字段验证
  7. python open 文件操作
  8. atitit.《金刚经》与it软件项目管理的启发 读后感attilax
  9. java 微信文章评论点赞_微信文章评论点赞刷赞工具及微信文章评论点赞软件使用教程...
  10. c语言的链表ppt,C语言链表详解.ppt
  11. 5G无线接入网、承载网、核心网
  12. 我的网站防盗链和屏蔽蜘蛛的iis8.5 web.config功能
  13. 第9天Sqltie数据库
  14. 【毕业设计】基于单片机的便携式空气质量检测仪 - 物联网 嵌入式
  15. OA课程--word2013实用技巧大全-目录
  16. 安卓蓝牙实现即时通讯功能
  17. 月薪40k+测试·开发同步认可的FastAPI:Python 世界里最受欢迎的异步框架
  18. UltraEdit正则表达式使用(Regular Expressions in UltraEdit)
  19. NOI-1.2(04) 填空:类型转换1
  20. AS BottomNavigation does not have a NavController set

热门文章

  1. Python学习之数据库
  2. HTML_页面中的超级链接
  3. 马云、李嘉诚、周立波这样骂不上进的人(转)
  4. 小程序自定义导航栏高度
  5. 审计数据在EntityFramework中的解决方案
  6. 不要告诉同事你要离职!打算跳槽,新公司开出两倍薪资,私下告诉要好的同事,却被同事出卖给领导!...
  7. IDEA不打包第三方jar和dll文件
  8. 栈溢出攻击系列:shellcode在linux x86 64位攻击获得root权限(二)shellcode
  9. axure9怎么让页面上下滑动_Axure RP 9如何制作滚动页面?
  10. bt5制作php木马,BT5下利用WordpressZingiri Plugin渗透靶机镜像wordpress -电脑资料