倒排索引流程图:(有三个文件,里边有三句话,分别统计每个单词在每个文件中出现的次数)

package com.young;import org.apache.commons.lang.StringUtils;
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.FileSplit;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
public class App
{public static class MyMap extends Mapper<LongWritable,Text,Text,IntWritable>{@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {String line = value.toString();//按行读取文件String[] fields = StringUtils.split(line," ");//按空格进行分片FileSplit fileSplit = (FileSplit) context.getInputSplit();String fileName = fileSplit.getPath().getName();//获取文件名for(String field:fields){context.write(new Text(field+"-->" + fileName),new IntWritable(1));}}}public static class MyReduce extends Reducer<Text,IntWritable,Text,IntWritable>{@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {int sum = 0;for(IntWritable value:values){sum+=value.get();//统计每个key值对应的value值}context.write(key,new IntWritable(sum));}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {Configuration conf = new Configuration();conf.set("fs.defaultFS","hdfs://192.168.131.142:9000");Job job  = Job.getInstance(conf);job.setJarByClass(App.class);job.setMapperClass(MyMap.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setReducerClass(MyReduce.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job,new Path("/idea/a.txt"));//读取HDFS上idea目录下的a.txt文件FileInputFormat.addInputPath(job,new Path("/idea/b.txt"));FileInputFormat.addInputPath(job,new Path("/idea/c.txt"));FileOutputFormat.setOutputPath(job,new Path("/idea/out3"));//将结果保存在idea目录下的out3目录下job.waitForCompletion(true);}}

  

转载于:https://www.cnblogs.com/huyangyang/p/9325283.html

天津东软实训第八天------倒排索引相关推荐

  1. [记录]明天开始东软实训

    这个假期对于我来说没有假可放,因为我要参加 东软实训,方向肯定是.NET方向. 我们这次最终的项目是实训OA系统(自动办公系统).OA上比较常见的案例.希望能在这次实训中,学习更好的知识.特别是Ent ...

  2. 东软实训推荐面试问题12:三分钟表现自己使我感兴趣就留下来?

    东软实训推荐面试问题:三分钟表现自己使我感兴趣就留下来? 问题:你可以有三分钟的表现自己的机会,若表现得使我感兴趣,就留下来,否则另请高就. 回答:这三分钟的表现,可以成为你去留的依据,有的学生充分显 ...

  3. 东软实训心得:万事开头难

    在东软实训三个多月的JavaEE,有了许多心得体会,在这里小小的发些感慨,希望对刚刚来东软实训的同学有些帮助.毕竟我现在也算是一个过来人了. 起初我在大学的时候只是学过一些基本的JavaSE,记得那时 ...

  4. 东软实训心得:做事务的主宰者

    转眼间,来到东软实训已经一个礼拜了.从陌生的城市,陌生的人群,陌生的气候带来的茫然与不安的情绪,被和蔼可亲的班主任老师独有的东北人热情友善感染,使我渐渐适应,转为现在的放心与安定.我的父辈本也就是沈阳 ...

  5. 东软实训心得:用正能量去学习和交流

    用正能量去学习和交流--李同学    时间飞逝,当我还在感受每一天新鲜的事物时,就在今天,张老师给我们留了一个表达实训心得体会的机会,突然意识到我已经来东软2个多月了!!! 从9月份走来,在东软实训的 ...

  6. 【东软实训】SQL多表链接

    如果一个查询同时涉及两个以上的表,则称之为链接查询,链接查询是关系数据库中最主要的查询,主要包括等值链接查询.非等值链接查询.自身链接查询.外链接查询和复合条件链接查询.  这篇博文我们来对多表链接进 ...

  7. 东软实训项目个人总结

    项目个人总结 时间有如流水,转眼间项目已经进入了尾声,经历了这段时间的在东软的项目经历,对我而言收获是很大的,感触也颇深.有以下几点是让我感受很深的.这次我参加的项目组做的是<基于linux下的 ...

  8. 逆袭之旅DAY17.东软实训.Oracle.存储过程

    2018-07-13 09:08:36 转载于:https://www.cnblogs.com/twinkle-star/p/9303133.html

  9. 逆袭之旅.DAY08东软实训.多态~

    2018年7月4日 转载于:https://www.cnblogs.com/twinkle-star/p/9262075.html

  10. 【东软实训】SQL函数

    SQL函数 SQL是用于访问和处理数据库的标准的计算机语言,我们所使用的的是Oracle SQL 一个数据库通常包含一个或多个表,每个表有一个名字表示,下图即为一个名为"emp"的 ...

最新文章

  1. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-目录
  2. A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)
  3. linux学习总结之基本命令
  4. gitlab创建分支上传文件_Gitlab管理和使用基本教程
  5. Andoid开发中生成二维码
  6. 反复出现的PSW木马, 附日志,请高手指点
  7. ElasticSearch 全文检索实战
  8. (简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
  9. python调用按键精灵插件_按键精灵WQM软件使用说明书,资深老师讲解就是详细
  10. 行业标准 | 证券期货经营机构信息系统备份能力标准 JR/T 0059—2010
  11. Python使用Opencc库完成字符繁简体转换
  12. 获取浏览器的地理位置信息
  13. 2021年中国人机界面软件市场趋势报告、技术动态创新及2027年市场预测
  14. python多边形的绘制教程_使用Python matplotlib绘制3D多边形
  15. 有关安装vuex报错error found vue@2.6.14及有关vue搭建项目问题
  16. 香蕉派 Banana pi BPI-R2 开源智能路由器 MTK 7623N 方案设计
  17. 查看、修改oracle字符集,查看oracle版本
  18. GOM 登录器源码及编译教程
  19. matlab 局部放大
  20. ShareSDK Android SDK API

热门文章

  1. 概率生成模型-朴素贝叶斯(Naive Bayes)
  2. cognos数据源配置修改oracle,Cognos 新建数据源报错(原创)
  3. 2021年各省高考试成绩查询,2021年各省高考成绩查询时间 什么时候出分
  4. FISCO BCOS Transaction execution error合约执行失败原因
  5. java MAVEN下载的代码仓库位置 mac
  6. nginx IP 80跳转443
  7. Kubernetes架构图 Architecture Workload Networking Storage RBAC
  8. htc a620d 刷android,续航以及最后的总结_HTC A620d - CNMO
  9. 使用layui实现后台数据表格显示时的需要修改的地方(包括后台)
  10. javascript 变量及作用域(栈、堆、块级作用域、执行环境)详细篇