/
* Project Name:hd
* File Name:MrSequenceFile.java
* Package Name:hd
* Date:2015年11月14日下午4:55:17
* Copyright (c) 2015, Administrator All Rights Reserved.
*
*/
package hd;
import hd.KpiWritable.TrafficWritable;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.ReflectionUtils;
/
* ClassName:MrSequenceFile <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON. <br/>
* Date: 2015年11月14日 下午4:55:17 <br/>
* @author Administrator
* @version
* @since JDK 1.6
* @see
/
public class MrSequenceFile {
private static SequenceFile.Reader reader = null;
private static Configuration conf = new Configuration();
public static class ReadFileMapper extends
Mapper<LongWritable, Text, LongWritable, Text> {
LongWritable k2= new LongWritable();
Text value=new Text();
@Override
public void map(LongWritable key, Text value, Context context) {
try {
while(reader.next(key, value)){//这里一直报空指针
System.out.println(key.get()+"\t"+value.toString());
try {
context.write(key, value);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* @param args
* @throws IOException
* @throws InterruptedException
* @throws ClassNotFoundException
/
public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
/ Job job = new Job(conf,"read seq file");
job.setJarByClass(MrSequenceFile.class);
job.setMapperClass(ReadFileMapper.class);
job.setMapOutputValueClass(Text.class);
Path path = new Path("/sf");
FileSystem fs = FileSystem.get(conf);
reader= new SequenceFile.Reader(fs, path, conf);
FileInputFormat.addInputPath(job, path);
FileOutputFormat.setOutputPath(job, new Path("/result"));
System.exit(job.waitForCompletion(true)?0:1);/
Configuration conf = new Configuration();
Job job = Job.getInstance(conf , MrSequenceFile.class.getSimpleName());
job.setJarByClass(MrSequenceFile.class);
job.setInputFormatClass(SequenceFileInputFormat.class);
//读取解析
job.setMapperClass(ReadFileMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);
Path path = new Path("/sf"); //sequence文件
FileSystem fs = FileSystem.get(conf);
reader= new SequenceFile.Reader(fs, path, conf);
FileInputFormat.addInputPath(job, path);
FileOutputFormat.setOutputPath(job, new Path("/ll"));//输出路径
job.waitForCompletion(true);
}
}
大神帮新手解答下吧
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。