开发者社区> 问答> 正文

新手提问,mr读取SequenceFile一直报错?报错

/
 * 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);
}
}

展开
收起
爱吃鱼的程序员 2020-06-10 11:04:33 380 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    大神帮新手解答下吧

    2020-06-10 11:04:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
HBase实践之MOB使用指南(未翻译) 立即下载
大批量处理excel文件到ODPS中方案 立即下载
《Apache Flink-重新定义计算》PDF下载 立即下载