资源简介
这是山东大学大数据实验二,用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
相关资源
- 大数据hadoop,spark,hive等等面试汇总
- 《Hadoop with Python》 pdf
- 绝对可用hadoop-eclipse-plugin-1.1.2.jar
- 用itext实现pdf导出表格数据及水印操作
- hadoop-common-2.7.1-bin
- hadoop2.5.0 snappy编译jar包
- Hadoop 2.7.4 Windows 64位 编译bin包含win
- hadoop-hdfs-2.7.7.jar
- 09_尚硅谷大数据技术之Kafka.doc
- 修复版 hadoop-0.21.0-eclipse-plugin.jar
- hadoop-eclipse-plugin-1.2.1.jar
-
10_尚硅谷大数据技术之Hba
se.doc - Native Hadoop3.2.1 Library 64位编译
- hadoop-common-2.7.3.jar
- avro-1.8.1
- Hadoop2.7.7配合使用的winutil
- hadoop 32位lib包
- 基于java的大数据预测系统设计可运行
- hadoop电商网站分析系统毕业设计项目
- hadoop-eclipse-plugin-2.7.5.jar275778
- Hadoop-Eclipse插件2.7.6
- JavaWeb操作hadoop2.6 HDFS从页面上传,,
- hadoop-eclipse-plugin-2.7.3.jar 插件
- hadoop-eclipse-plugin-2.7.2完美兼容版
- hadoop-eclipse-plugin-2.6.4.jar
- Snapde电子表格软件,一个超大数据量
- hadoop-eclipse-plugin-2.8.5.jar
- 07_尚硅谷大数据技术之Hive.doc
- hadoop-eclipse-plugin-3.1.2.jar
- Hadoop的jar包
评论
共有 条评论