5.6单词统计分析代码实现-提交任务(完)_第1页
5.6单词统计分析代码实现-提交任务(完)_第2页
5.6单词统计分析代码实现-提交任务(完)_第3页
5.6单词统计分析代码实现-提交任务(完)_第4页
5.6单词统计分析代码实现-提交任务(完)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

Hadoop大数据项目开发——单词统计分析代码-Driver实现目录content02Reducer类的编写01Mapper类的编写03Driver类的编写Driver类的编写编写完Mapper类和Reducer类之后,需要编写Driver类,启动程序。自定义WordCountdDriver类指定了输入文件位置输入文件格式类自定义Mapper类自定义Reducer类自定义OutputFormat类及输出文件的位置;WordCountDriver类的代码如下:本案例中的测试数据位于“G:/wordcount/input”的文件夹中。Driver类的编写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.lib.input.FileInputFormat;importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;publicclassWordCountDriver{ publicstaticvoidmain(String[]args)throwsException{ //Job Jobjob=Job.getInstance(); //1、封装参数,驱动类对应的字节码对象 job.setJarByClass(WordCountJob.class); //2、封装参数,job调用Mapper和Reducer实现类 job.setMapperClass(WordCountMapper.class); job.setReducerClass(WordCountReducer.class); //3、封装参数,job调用的Mapper和Reducer实现类中key和value数据类型Driver类的编写 //3、封装参数,job调用的Mapper和Reducer实现类中key和value数据类型 job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(IntWritable.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); //4、封装参数,处理的数据和最终结果数据路径 FileInputFormat.setInputPaths(job,newPath("G:\\wordcount\\input"));//G:\\wordcount\\input为文件所存放的路径 FileOutputFormat.setOutputPath(job,newPath("G:\\wordcount\\output"));//G:\\wordcount\\output为文件中单词出现的次数。 //5、可以设置启动的reduce数量 job.setNumReduceTasks(2); //6、提交job给YARN booleanres=job.waitForCompletion(true); System.exit(res?0:-1); }}Driver类的编写上述代码中,setJarByClass(WordCountJob.class)方法指定job调用的驱动类;setMapperClass(WordCountMapper.class)方法和setReducerClass(WordCountReducer.class)方法指定job调用的Mapper和Reducer实现类;setMapOutputKeyClass(Text.class)方法、setMapOutputValueClass(IntWritable.class)方法、setOutputKeyClass(Text.class)方法和setOutputValueClass(IntWritable.class)方法指定job调用的Mapper和Reducer实现类中key和value数据类型;FileInputFormat.setInputPath和FileOutputFormat.setOutputPath指定处理的数据和最终结果数据路径;提交job给YARN。Driver类的编写处理的数据来自于G:/wordcount/input文件夹,最终输出结果位于G:/wordcount/output文件夹,运行结果文件名如图所示:Driver类的编写在Windows10下运行MapReduce程序,必须在Windows10操作系统上配置Hadoop的Hadoop_HOME和Path路径。运行结果如图所示:课外拓展在上面代码中,实现了本地测试功能,处理的数据来源本地,但是实际生产环境中,数据位于HDFS上,那么该如何解决?本地直接提交给集群运行生成Jar包提交给YARN运行课外拓展System.setProperty("HADOOP_USER_NAME","hadoop");Configurationconf=newConfiguration();//设置job运行时要访问的默认文件系统conf.set("fs.defaultFS","hdfs://hdp-01:9000");Jobjob=Job.getInstance(conf);1.本地直接提交给集群,添加代码如下:课外拓展除了需要增加上述代码之外,还需要将处理的数据和最终结果数据路径修改为HDFS上的位置,如下所示:FileInputFormat.setInputPaths(job,newPath("/wordcount/input"));FileOutputFormat.setOutputPath(job,newPath("/wordcount/output"));1.本地直接提交给集群,添加代码如下:课外拓展该方式中,只需

温馨提示

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

最新文档

评论

0/150

提交评论