mapreduce的代码,能不能来个厉害的弄个注释。要每步详细的注释,急
4条回答 默认 最新
- yy64ll826 2022-11-21 21:57关注
你这个是求每一个单词出现得个数
编写Mapper类 public class TokenizerMapper extends Mapper<Object,Text,Text,IntWritable> { @Override public void map(Object key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString();//读取一行数据 StringTokenizer st = new StringTokenizer(line);//使用空格分隔 while (st.hasMoreTokens()) { String word = st.nextToken();//单词 context.write(new Text(word), new IntWritable(1));//单词---> 1 } } } 编写Reducer类 public class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> { @Override 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 class WordCount { public static void main(String[] args) throws Exception { Configuration cfg = new Configuration();//创建配置对象 conf.set("mapreduce.framework.name","local"); //本地模式运行mr,输入输出的数据可以在本地,也可以在hdfs //conf.set("fs.defaultFS","hdfs://hcmaster:9000"); conf.set("fs.defaultFS","file:///"); Job job = Job.getInstance(cfg, "word count");//创建job对象 job.setJarByClass(WordCount.class);//创建运行job的类 job.setMapperClass(TokenizerMapper.class);//设置mapper类 job.setReducerClass(IntSumReducer.class); //设置Reduce类 job.setOutputKeyClass(Text.class);//设置Reduce输出的key job.setOutputValueClass(IntWritable.class);//设置Reduce输出的value FileInputFormat.addInputPath(job, new Path(args[0]));//设置输入路径 Path op1 = new Path(args[1]); FileSystem fs = FileSystem.get(cfg); if (fs.exists(op1)) { fs.delete(op1, true); System.out.println("存在此输出路径,已删除!!!"); } FileOutputFormat.setOutputPath(job, op1);//设置输出路径 boolean b = job.waitForCompletion(true); //提交job System.exit(b ? 0 : 1); } }
解决 无用评论 打赏 举报
悬赏问题
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)