天津东软实训第八天------倒排索引
倒排索引流程图:(有三个文件,里边有三句话,分别统计每个单词在每个文件中出现的次数)
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
天津东软实训第八天------倒排索引相关推荐
- [记录]明天开始东软实训
这个假期对于我来说没有假可放,因为我要参加 东软实训,方向肯定是.NET方向. 我们这次最终的项目是实训OA系统(自动办公系统).OA上比较常见的案例.希望能在这次实训中,学习更好的知识.特别是Ent ...
- 东软实训推荐面试问题12:三分钟表现自己使我感兴趣就留下来?
东软实训推荐面试问题:三分钟表现自己使我感兴趣就留下来? 问题:你可以有三分钟的表现自己的机会,若表现得使我感兴趣,就留下来,否则另请高就. 回答:这三分钟的表现,可以成为你去留的依据,有的学生充分显 ...
- 东软实训心得:万事开头难
在东软实训三个多月的JavaEE,有了许多心得体会,在这里小小的发些感慨,希望对刚刚来东软实训的同学有些帮助.毕竟我现在也算是一个过来人了. 起初我在大学的时候只是学过一些基本的JavaSE,记得那时 ...
- 东软实训心得:做事务的主宰者
转眼间,来到东软实训已经一个礼拜了.从陌生的城市,陌生的人群,陌生的气候带来的茫然与不安的情绪,被和蔼可亲的班主任老师独有的东北人热情友善感染,使我渐渐适应,转为现在的放心与安定.我的父辈本也就是沈阳 ...
- 东软实训心得:用正能量去学习和交流
用正能量去学习和交流--李同学 时间飞逝,当我还在感受每一天新鲜的事物时,就在今天,张老师给我们留了一个表达实训心得体会的机会,突然意识到我已经来东软2个多月了!!! 从9月份走来,在东软实训的 ...
- 【东软实训】SQL多表链接
如果一个查询同时涉及两个以上的表,则称之为链接查询,链接查询是关系数据库中最主要的查询,主要包括等值链接查询.非等值链接查询.自身链接查询.外链接查询和复合条件链接查询. 这篇博文我们来对多表链接进 ...
- 东软实训项目个人总结
项目个人总结 时间有如流水,转眼间项目已经进入了尾声,经历了这段时间的在东软的项目经历,对我而言收获是很大的,感触也颇深.有以下几点是让我感受很深的.这次我参加的项目组做的是<基于linux下的 ...
- 逆袭之旅DAY17.东软实训.Oracle.存储过程
2018-07-13 09:08:36 转载于:https://www.cnblogs.com/twinkle-star/p/9303133.html
- 逆袭之旅.DAY08东软实训.多态~
2018年7月4日 转载于:https://www.cnblogs.com/twinkle-star/p/9262075.html
- 【东软实训】SQL函数
SQL函数 SQL是用于访问和处理数据库的标准的计算机语言,我们所使用的的是Oracle SQL 一个数据库通常包含一个或多个表,每个表有一个名字表示,下图即为一个名为"emp"的 ...
最新文章
- 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-目录
- A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)
- linux学习总结之基本命令
- gitlab创建分支上传文件_Gitlab管理和使用基本教程
- Andoid开发中生成二维码
- 反复出现的PSW木马, 附日志,请高手指点
- ElasticSearch 全文检索实战
- (简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
- python调用按键精灵插件_按键精灵WQM软件使用说明书,资深老师讲解就是详细
- 行业标准 | 证券期货经营机构信息系统备份能力标准 JR/T 0059—2010
- Python使用Opencc库完成字符繁简体转换
- 获取浏览器的地理位置信息
- 2021年中国人机界面软件市场趋势报告、技术动态创新及2027年市场预测
- python多边形的绘制教程_使用Python matplotlib绘制3D多边形
- 有关安装vuex报错error found vue@2.6.14及有关vue搭建项目问题
- 香蕉派 Banana pi BPI-R2 开源智能路由器 MTK 7623N 方案设计
- 查看、修改oracle字符集,查看oracle版本
- GOM 登录器源码及编译教程
- matlab 局部放大
- ShareSDK Android SDK API
热门文章
- 概率生成模型-朴素贝叶斯(Naive Bayes)
- cognos数据源配置修改oracle,Cognos 新建数据源报错(原创)
- 2021年各省高考试成绩查询,2021年各省高考成绩查询时间 什么时候出分
- FISCO BCOS Transaction execution error合约执行失败原因
- java MAVEN下载的代码仓库位置 mac
- nginx IP 80跳转443
- Kubernetes架构图 Architecture Workload Networking Storage RBAC
- htc a620d 刷android,续航以及最后的总结_HTC A620d - CNMO
- 使用layui实现后台数据表格显示时的需要修改的地方(包括后台)
- javascript 变量及作用域(栈、堆、块级作用域、执行环境)详细篇