资源简介
这是山东大学大数据实验二,用Hadoop实现文档的倒排索引
代码片段和文件信息
package cn.edu.zucc.mapreduce;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.net.URI;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.TreeSet;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.filecache.DistributedCache;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.lib.input.LineRecordReader;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
import org.apache.hadoop.mapreduce.lib.partition.HashPartitioner;
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.output.FileOutputFormat;
/**
* mapper
* input:
* output:
*
* partitioner
* 只根据word哈希
*
* Combiner
* input:
* output:
*
* reducer
* intput:
* output:;<..>;...>
*
**/
public class indexinverted {
/*
* 因为重写了RecordReader类,这里要重写FileInputFormat类来使用自定义FileNameRecordReader.
* 这个类的主要作用就是返回一个FileNameRecordReader类的实例。
*/
public static class FileNameRecordReader extends RecordReader {
String fileName;
LineRecordReader lrr = new LineRecordReader();
@Override
//返回key
public Text getCurrentKey() throws IOException InterruptedException {
return new Text(fileName);
}
@Override
//返回value
public Text getCurrentValue() throws IOException InterruptedException {
return lrr.getCurrentValue();
}
@Override
public void initialize(InputSplit arg0 TaskAttemptContext arg1) throws IOException InterruptedException {
lrr.initialize(arg0 arg1);
fileName = ((FileSplit) arg0).getPath().getName(); //获得文件名
}
public void close() throws IOException {
lrr.close();
}
public boolean nextKeyValue() throws IOException InterruptedException {
return lrr.nextKeyValue();
}
public float getProgress() throws IOException InterruptedException {
return lrr.getProgress();
}
}
/*
* FileNameRecordReader类继承自RecordReader,是RecordReader类的自定义实现.
* 主要作用是将记录所在的文件名作为key,而不是记录行所在文件的偏移,获取文件名所用的语句为:
* fileName = ((FileSplit) arg0).getPath().getName();
*/
public static class FileName
相关资源
- Spark最全操作完整
- poi读取大数据量excel文件,避免内存溢
- hadoop k-means实现
- 最高气温 map reduce hadoop
- mongo-hadoop-hive-2.0.2.jar
- mongo-hadoop-core-2.0.1.jar
- hadoop-2.6.0 win工具包 hadoop.dll winutils
- Java导出Excel(适合分页_大数据量)
- hadoop2.7.1(hadoop.dllwinutils.exe) 亲自测
- hadoop2 MR运行修改jar
- hadoop k-means算法实现可直接命令行运行
- MR编程之Top3源代码
- 用MapReduce开发的一个TFIDF 计算关键字
- hadoop实战源代码Java
- 探花交友2020学习资料-Java大数据实战
- hadoop-2.6.0-hadoop.dll-winutils.exe
- 大数据全套教程完整版
- 高职组云计算与大数据题库
- Hadoop-2.8.5全面资料
- IT18掌大数据课程包含配套资料
- Hadoop-client-2.7.4.jar
- hadoop2.7.3 hadoop.dll
- hadoop2.7.1对应的hadoop.dllwinutils.exe等。
- Spark大数据中文分词统计Java工程源码
- java csv大数据量导出(千万级别,不
- hadoop-auth-2.2.0.jar
- 2018年最新java大数据基于storm开发实时
- 基于java的倒排索引
- it十八掌大数据4个月全套课程永久有
- hadoop-common-2.2.0-bin-master
评论
共有 条评论