实验内容
- 实现倒排索引效果:统计每个单词在不同文件中的出 现次数;
- 输入:自己编辑几个文件,例如 a.txt,b.txt,c.txt。 每个文件的内容为若干行单词,单词之间以空格分开, 并将这些文件上传到 hdfs 的/in 目录下;例如:a.txt 包含内容: hadoop google scau map hadoop reduce hive hello hbase
- 编写程序实现单词的倒排索引效果;
实现过程
工具:idea、xshell6、xftp。
在idea上创建maven工程:
添加hadoop依赖:
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.7.7</version>
</dependency>
</dependencies>
编写代码:
Mapper类,实现map方法:
package com.hadoop.invertedindex;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
import java.io.IOException;
public class InvertedMapper extends Mapper